ResultMap结果集映射
属性名和字段不一致问题
如果先将实体类中的pwd修改为password
之后进行查找
发现结果password这一栏一直为null
原因是我们修改实体类之后但是在标签中的sql语句的查找还没有改变
数据库中是是pwd,所以类型处理器不认识password所以就查找不到数据库中的值
解决方法
1、起别名修改sql
2、使用ResultMap结果集映射
<select id="getUserById" resultMap="UserMap" >
select * from mybatis.user where id = #{
id}
</select>
<!--结果集映射-->
<resultMap id="UserMap" type="User">
<!--column是数据库中的字段,property实体中的属性
column是数据库中每个列的列名 后面的的property对应实体类里面的每个属性-->
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>
- resultMap 元素是 MyBatis 中最重要最强大的元素
- ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。
- ResultMap 的优秀之处——你完全可以不用显式地配置它们,可以只转不匹配的字段。