Mybatis

解决属性名和字段名不一致的问题

resultMap

方案一:为列名指定别名 , 别名和java实体类的属性名一致 .

1
2
3
<select id="selectUserById" resultType="User">
select id , name , pwd as password from user where id = #{id}
</select>

方案二:使用结果集映射->ResultMap 【推荐】

1
2
3
4
5
6
7
8
9
10
11
<resultMap id="UserMap" type="User">
<!-- id为主键 -->
<id column="id" property="id"/>
<!-- column是数据库表的列名 , property是对应实体类的属性名 -->
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>

<select id="selectUserById" resultMap="UserMap">
select id , name , pwd from user where id = #{id}
</select>

ResultMap设计思想时:对于简单的语句根本不需要配置显示的结果映射,而对于复杂的语句,只需要描述它们之间的关系就行了

ResultMap 最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式地用到他们。

如果世界总是这么简单就好了