ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

resultMap结果集映射解决属性名和字段不一致问题

2021-04-17 17:32:36  阅读:138  来源: 互联网

标签:语句 映射 resultMap private 名和字 id 属性


解决属性名和字段名不一致的问题

1.出现的问题

数据库中的字段

image-20210417163434479

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

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

现在测试出现问题

image-20210417164131036

image-20210417164259835

image-20210417164356837

解决方法:

方法一:最简单的在sql语句中直接起别名

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

方法二就是使用下面的resultMap

2、resultMap

结果集映射

首先定义一个resultMap的标签做数据库字段与实体类属性的映射(注:可以只映射不相同的字段与属性)

<!--resultMap叫结果集映射,
    就是实现将sql查询出来的结果集映射到实体类里-->
<resultMap id="UserMap" type="User">
    <!--column数据库的字段,property实体类中的属性-->
    <!--resultMap可以什么哪个字段不一样转哪个字段,
        并不用数据库列和实体类属性全部写完-->
    <!-- <result column="id" property="id"/>
        <result column="name" property="name"/>-->
    <result column="pwd" property="password"/>
</resultMap>

然后select标签取引用它,如下:

<select id="getUserById" resultMap="UserMap">
    select * from mybatis.user where id = #{id}
</select>

这就是结果集映射的用法。

下面时截取的Mybatis官网上的一些针对resultMap的重要信息:

  • resultMap 元素是 MyBatis 中最重要最强大的元素。
  • ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。
  • 相同的字段和属性名不用做映射也可。
  • 如果这个世界总是这么简单就好了。(哈哈哈哈)

这篇文章的源码在Mybatis-study工程的mybatis-03模块下!,后面会给出码云地址。

标签:语句,映射,resultMap,private,名和字,id,属性
来源: https://www.cnblogs.com/laiyw/p/14671271.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有