• 【MyBatis】resultType与类的字段不同解决办法


    问题描述:
    如果你的实体类的字段写的是

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

    但是你的数据库的表结构为

    id  name  pwd

    这样在进行mapper映射的时候

    就会password读不出来pwd的值。

    解决办法:

    (1)通过SQL语句给password起别名,显式将pwd转为password

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

    (2)进行结果集的映射

    自定义一个新的类型UserMap

    将User的各个字段赋给UserMap,但将pwd改为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>
    • resultMap 元素是 MyBatis 中最重要最强大的元素

    • ResultMap 的设计思想是,对于简单的语句根本不需要配置显式的结果映射,而对于复杂一点的语句只需要描述它们的关系就行了。

    • ResultMap 最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式地用到他们。

    • 如果世界总是这么简单就好了。

  • 相关阅读:
    吴太银:华为消费者云服务Cassandra使用场景与最佳实践
    使用FileZilla连接Linux
    debug 与 release
    删除cocos2dx项目模版
    [转]C/C++控制台输出时设置字体及背景颜色
    iphone调试的一些问题
    [转]Refactoring Game Entities with Components
    使用QT + cocos2dx制作工具
    [转]printf输出字体颜色
    Error: No module named books
  • 原文地址:https://www.cnblogs.com/cckong/p/14321611.html
Copyright © 2020-2023  润新知