0%

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

5.1问题

新建一个模块,拷贝之前源码,测试实体类与数据库字段不一致的情况

测试出现问题

解决方法:

  • 起别名

    1
    2
    3
    4
     <select id="getUserByID" resultType="User" parameterType="int">
    /* select * from user where id = #{id}*/
    select id,name,psw as password from user where id = #{id}
    </select>
  • resultMap

5.2resultMap解决问题

简单结果集映射

1
2
id name pwd
id name password
1
2
3
4
5
6
7
8
9
10
<resultMap id="DiyUser" type="user">
<!--column 数据库中字段 property实体类中属性-->
<result column="id" property="id"></result>
<result column="name" property="name"></result>
<result column="pwd" property="password"></result>
</resultMap>

<select id="getUserByID" resultMap="DiyUser">
select * from user where id = #{id}
</select>
  • resultMap 元素是 MyBatis 中最重要最强大的元素。
  • ResultMap 的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句只需要描述它们的关系就行了。
  • ResultMap 最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式地用到他们。

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