结果映射

resultMap 元素是 MyBatis 中最重要最强大的元素

ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。

 

属性名和字段名不一致

@Alias("hello")
public class User {
   private int id;
   private String name;
   private String password; //数据库字段为 psw

}

测试方法返回结果:

User{id=1, name='zy', password='null'}
User{id=3, name='张六', password='null'}
User{id=4, name='王五', password='null'}
User{id=6, name='阿里', password='null'}
User{id=7, name='王三', password='null'}

password 都为null

解决方法:

(1) 起别名

    <select id="getUserList" resultType="hello">
      select id,name,psw as password from user
   </select>

(2) resultMap 结果集映射

<mapper namespace="com.zy.dao.UserMapper">
   <resultMap id="getUserMap" type="hello">
    只映射不一样的字段属性
       <result column="psw" property="password"/>
   </resultMap>
   <select id="getUserList" resultMap="getUserMap">
      select * from user
   </select>
</mapper>

<resultMap> 的id 要与 <select>中resultMap 的值 对应

<resultMap> type就是 实体类别名或者映射的实体类

<result> 中column就是表中字段名 property是实体类属性名

启动:

User{id=1, name='zy', password='123456'}
User{id=3, name='张六', password='595959'}
User{id=4, name='王五', password='7789'}
User{id=6, name='阿里', password='258789'}
User{id=7, name='王三', password='7789'}
 
posted on   可惜君已逝i  阅读(90)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示