• mybatis_5解决属性名和字段名不一致的问题(resultMap)


    1、 问题

    数据库中的字段

    新建一个项目,拷贝之前的,测试实体类字段不一致的情况

    public class User {
        
        private int id;
        private String name;
        private String password;
    }
    

    测试出现问题

    //    select * from mybatis.user where id = #{id}
    //类型处理器
    //    select id,name,pwd from mybatis.user where id = #{id}
    

    解决方法:

    • 起别名

      <select id="getUserById" resultType="com.loading.pojo.User">
          select id,name,pwd as password from mybatis.user where id = #{id}
      </select>
      

    2、resultMap

    结果集映射

    id   name   pwd
    id   name   password
    
    <!--结果集映射-->
    <resultMap id="UserMap" type="User">
        <!--column数据库中的字段,property实体类中的属性-->
        <result column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="pwd" property="password"/>
    </resultMap>
    
    <select id="getUserById" resultMap="UserMap">
        select * from mybatis.user where id = #{id}
    </select>
    

    与数据库中相同的字段类型就不用映射了id和name

    • resultMap 元素是 MyBatis 中最重要最强大的元素
    • ResultMap 的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句只需要描述它们的关系就行了。
    • ResultMap 最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式地用到他们。
    • 如果世界总是这么简单就好了。
  • 相关阅读:
    浅谈 unix, linux, ios, android 区别和联系
    比 Java 更具争议的 PHP,处处留坑?
    JavaScript 对象
    前端:for、foreach、for in、for of、$.each、$().each的区别
    java按照关键字指定的key删除redis(支持模糊删除)
    单点登录SSO
    页面打印的总结
    Jquery对selec操作的总结
    JS判断操作系统
    动态生成js的正则,替换字符串
  • 原文地址:https://www.cnblogs.com/loading955/p/13793973.html
Copyright © 2020-2023  润新知