Mybatis中的resultMap理解
在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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类