Mybatis学习-ResultMap结果集映射

写在前面

ResultMap的出现,是为了解决数据库字段名与Java类属性名不一致的问题
下面介绍下问题场景:
数据库有一张User表,字段名分别是:id , username , pwd
而Java类中有一个User类,属性名分别是:id , username , password
这里可以发现,pwd与password的字段名不一样,这样查询数据库时,后端接收到的password值将会是null

解决方式一(在SQL语句方面做文章)

众所周知,在Sql语句查询时,可以为查询的字段起别名,这样就可以起一个与Java类属性名一致的别名让Mybatis去识别:

<select id="xxx" >
	select id, username, pwd as password 
	from user 
	where id = #{id}
</select>

解决方式二(使用ReslutMap)

在UserMapper.xml的sql语句中添加ResultMap属性

<select id="xxx" resultMap="UserMap">
	select * from user where id = #{id}
</select>

同时添加ResultMap标签:

<resultMap id="UserMap" type="User">
	<!--column的值代表数据库中表的字段,property代表实体类中的属性名-->
	<result column="pwd" property="password"/>
</resultMap>

这里,id值要与上面select标签中的resultMap属性值相对应,
type属性值表明要映射到的类是User类
用ReslutMap就可以完成表字段与类属性名的映射了
【注】这里的字段仅限于基础类型,如果字段是另一个对象,则另当别论。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值