(2)数据库字段名与bean属性名不一致的处理

数据库字段名与bean属性名不一致的处理

假如数据库中的字段名为user_name,java bean中对应的属性为name,此时若要进行查询操作,有两种解决方式:

SQL语句中使用别名

<select id="selectStudentById" resultType="student">
    SELECT id,age,score,user_name name FROM t_student where id=#{id}
</select>

使用结果映射 resultMap

这里的resultMap实际上是将数据库表中的字段与实体类中的属性建立一个映射关系,名字相同的可以不用指定,这样子,即使两者名字不一致,mybatis也会根据resultMap中的映射关系正常执行。一般在较为复杂的SQL语句中会使用resultMap。

<resultMap id="BaseResultMapper" type="student">
    <id column="id" property="id"/>
    <result column="user_name" property="name"/>
</resultMap>

<!--注意此处使用的是 resultMap属性,不是 resultType-->
<select id="selectStudentById" resultMap="BaseResultMapper">
    SELECT id,user_name,age,score FROM t_student where id=#{id}
</select>

在resultMap标签中添加了一个id子标签来指定主键,这样子可以提高mybatis的查询性能。resultMap中的type属性用来指定要映射的实体类(这里同样使用mybatis主配置文件中配置的别名)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值