在xml文件中写SQL语句,若只是单独用到一张表,一般用resultType就够了,对于下划线和驼峰形式的转换一般在框架内配置一下即可实现;
但是在实际操作过程中往往会涉及到多表操作,一个类的属性也常常会使用另一个类作为其中一个属性;这个时候就要用到resultMap这个标签。
这个标签最本质解决的问题就是SQL语句查询结果与类属性对应问题。
对于这个标签,其实最简单的应用就是前面说的下划线与驼峰之间的转换。
// 实体类
public class User {
private int id;
private String username;
private String hashedPassword;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getHashedPassword() {
return hashedPassword;
}
public void setHashedPassword(String hashedPassword) {
this.hashedPassword = hashedPassword;
}
}
//原本中的xml文件中的SQL
<select id="selectUsers" resultType="User">
select
user_id,user_name,hashed_password
from some_table
where id = #{id}
</select>
// 实际xml文件中
<resultMap id="userResultMap" type="User">
<id property="id" column="user_id" />
<result property="username" column="user_name"/>
<result property="password" column="hashed_password"/>
</resultMap>
<select id="selectUsers" resultMap="userResultMap">
select user_id, user_name, hashed_password
from some_table
where id = #{id}
</select>
注:(此处说的关系针对的是sql中的两张表之间的关系)
对于一对一以及一对多关系,用<association>标签。
对于多对多关系,用<collection>标签
column表示查出来的列名;property表示类中的列名
参考链接:
https://blog.csdn.net/cijiancao/article/details/124532368
标签:username,String,hashedPassword,resultMap,public,理解,user,Mybatis,id From: https://www.cnblogs.com/ReturnOfTheKing/p/17184236.html