现象:
- 数据库字段
- 实体类属性名
- 当出现这种情况时,不一致的部分,一半查询结果为空
解决问题的方法:
1. 起别名
<select id="getUserById" resultType="user" parameterType="int">
select id,name,pwd as password from mybatis.student where id = #{id};
</select>
2. resultMap 结果集映射
id name pwd
id name password
要实现这三个属性的一一映射
<resultMap id="userMap" type="user">
<result column="id" property="id"></result>
<result column="name" property="name"></result>
<result column="pwd" property="password"></result>
</resultMap>
<select id="getUserById" resultMap="userMap">
select * from mybatis.student where id = #{id};
</select>
- resultMap 元素是 MyBatis 中最重要最强大的元素
- ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。
- ResultMap 的优秀之处——你完全可以不用显式地配置它们(只用映射不一样的字段)
<resultMap id="userMap" type="user">
<!-- <result column="id" property="id"></result>-->
<!-- <result column="name" property="name"></result>-->
<result column="pwd" property="password"></result>
</resultMap>