resultMap自定义映射---8.3.1. 解决列名(表中的字段名称)和实体类中的属性名不一致
1.1.1.1. 步骤一:将驼峰匹配注释掉 --------------测试完成后仍然 回来开启 其他地方可能用到
一旦注释掉驼峰匹配,那么再通过queryUserById查询的结果中,用户名就无法封装了,此时我们可以尝试使用ResultMap来解决这个问题。

1.1.1.2. 步骤二:在UserMapper.xml中配置resultMap
<!--
resultMap标签:可以自己配置对象属性和表字段的映射(不仅仅是驼峰规则的映射)
type属性:结果集的封装类型
id属性:唯一标识
autoMapping属性:如果不配置,默认为true。对其他属性进行自动映射。
-->
<resultMap type="User" id="userResultMap" autoMapping="true">
<!-- id标签:配置主键映射,column:表中的字段名称,property:属性名称 -->
<id column="id" property="id"/>
<!-- 可以用来配置普通类型字段和属性映射(非复杂类型) -->
<result column="user_name" property="userName"/>
</resultMap>
1.1.1.3. 步骤三:在statement中引用自定义resultMap
<!--
select:查询的statement,用来编写查询语句。
id:语句的唯一标识,使用动态代理之后,必须和mapper接口中的方法名称一致。
resultType:配置返回的结果集类型
parameterType:参数类型,可以省略。
-->
<!-- resultMap:引用自定义结果集的唯一标识 -->
<select id="queryUserById" resultMap="userResultMap">
select * from tb_user where id = #{id}
</select>
测试无误
注意:测试完记得将驼峰命名的配置重新开启,因为其他的测试方法还要用。
resultMap自定义映射---8.3.1. 解决列名(表中的字段名称)和实体类中的属性名不一致的更多相关文章
- MyBatis系列二 之 数据库列名于程序实体类中字段名称不一致
MyBatis系列二 之 数据库列名于程序实体类中字段名称不一致 情景:当数据库中的列名与我们程序实体类中的字段名称不一致 使用ResultMap节点配置信息 在映射文件中 ...
- Hive分区表新增字段及修改表名,列名,列注释,表注释,增加列,调整列顺序,属性名等操作
一.Hive分区表新增字段 参考博客:https://blog.csdn.net/yeweiouyang/article/details/44851459 二.Hive修改表名,列名,列注释,表注释, ...
- SpringBoot08 请求方式、参数获取注解、参数验证、前后台属性名不一致问题、自定义参数验证注解、BeanUtils的使用
1 请求方式 在定义一个Rest接口时通常会利用GET.POST.PUT.DELETE来实现数据的增删改查:这几种方式有的需要传递参数,后台开发人员必须对接收到的参数进行参数验证来确保程序的健壮性 1 ...
- 解决SpringDataJpa实体类中属性顺序与数据库中生成字段顺序不一致的问题
一.在application.yml配置中添加数据库根据实体类自动创建数据库表的配置(这里数据库采用MySQL数据库) jpa: database: MYSQL show-sql: true #Hib ...
- resultMap自定义映射(多对一)
自定义resultMap,处理复杂的表关系,实现高级结果集映射 1) id :用于完成主键值的映射 2) result :用于完成普通列的映射 3) association :一个复杂的类型关联;许多 ...
- resultMap自定义映射(一对多)
collection:处理一对多和多对多的关系 1) POJO中的属性可能会是一个集合对象,我们可以使用联合查询,并以级联属性的方式封装对象.使用collection标签定义对象的封装规则 publi ...
- Mybatis中实体类中的字段跟对应表的字段不一致时解决办法
解决字段名与实体类属性名不相同的冲突 实体类字段: public class Order { private int id; private String orderNo; private float ...
- 字段名与属性名不一致问题 通过resultMap解决
- 关于entityframework 自动生成实体类中加验证的属性重新生成后属性被覆盖解决办法
1.手动创建一个部分类 (你可以手动创建 partial class, 内容为空) [MetadataType(typeof(AppleMetadata))] public partial class ...
随机推荐
- MYSQL理论学习
最近在复习数据库相关的知识,主要是以“SQL必知必会”这本书为参考,结合网上相关博客,记录学习的要点.本篇博客会持续更新,便于以后复习. 参考博客:http://blog4jimmy.com/2017 ...
- Swift3.0添加桥接文件
注意是在target下不是project !!!纠结了好久表示...... 都这里一直编译错误,找不到该桥接文件,这里也是纠结了好久......最后原因是不能使用下划线就可以了....<表示这是 ...
- centos7 忘记mysql root登录密码
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和 ...
- Kubernetes web界面kubernetes-dashboard安装【h】
本文讲述的是如何部署K8s的web UI,前提是已经有一个k8s集群后,按照如下步骤进行即可.(如下步骤都是在master节点上进行操作) 1.下载kubernetes-dashboard.yaml文 ...
- 【Abode Air程序开发】移动设备、桌面和浏览器应用程序开发的差异
移动设备.桌面和浏览器应用程序开发的差异 在移动设备应用程序中使用 Spark 和 MX 组件的限制 移动设备应用程序在性能方面的注意事项 浏览器 将应用程序部署为 SWF 文件,以用于在浏览器中运 ...
- python列表与字符串、元组的区别以及列表引用的方式
一.字符串 字符串也可以用下标取值.切片.for循环.len()取长度以及 in 和 not in 来进行操作. 但字符串是不可变的,不能被更改.只能构造一个“新的”字符串来存取你想要修改后的数据. ...
- 小记--------sqoop的简单从mysql导入到hbase操作
sqoop import -D sqoop.hbase.add.row.key=true //是否将rowkey相关字段列入列族中,默认为false :该 ...
- SQLSERVER2008 内存占用高的处理方式
原文:SQLSERVER2008 内存占用高的处理方式 方法一: 方法二: 使用以下语句查找出什么语句占内存最高,针对占内存高的语句进行优化SELECT SS.SUM_EXECUTION_COUNT, ...
- 初遇PHP(一)
因为想给自己弄一个微信公众号,顺便提升一下自己,所以有了以下内容,本次学习的最终目标是能用php制作套微信公众号,然后转成Java.为什么要这么麻烦呢,其一是买的资料书是php的,其二是顺水推舟刚好可 ...
- 关于python中的包,模块导入的问题详解(二)
from import导入 紧接着的是from xx import xx 语法 1 ################ 2 from my_moudule import name 3 print(na ...