ResultMap:结果映射集,用于解决实体类属性名和数据库字段名不一致的问题。
resultMap 元素是 MyBatis 中最重要最强大的元素。
ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。
ResultMap 的优秀之处在于你完全可以不用显式地配置它们。
问题:实体类属性名和数据库字段名不一致
解决方法:
- 起别名(不推荐)
<select id="getuserlist" resultType="user">
select pwd as password from user
</select>
- 通过ResultMap结果集映射
<!-- 结果集映射 type是指返回的类型 -->
<resultMap id="UserMap" type="user">
<!-- column代表数据库里的字段,property代表实体类的属性,通过这个方法把他们一一对应-->
<result column="id" property="id"></result>
<result column="username" property="username"></result>
<result column="password" property="pwd"></result>
</resultMap>
<!-- resultMap的值与resultMap标签的id相同-->
<select id="getuserlist" resultMap="UserMap">
select pwd as password from user
</select>
上述语句只是简单地将所有的列映射到 HashMap 的键上,这由 resultType 属性指定。虽然在大部分情况下都够用,但是 HashMap 并不是一个很好的领域模型。你的程序更可能会使用 JavaBean 或 POJO(Plain Old Java Objects,普通老式 Java 对象)作为领域模型。MyBatis 对两者都提供了支持。