MyBatis学习(六)——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 的优秀之处——你完全可以不用显式地配置它们,可以只转不匹配的字段。

猜你喜欢

转载自blog.csdn.net/char_m/article/details/111332167