使用Mybatis时实体类属性名和表中的字段名不一致导致结果无法映射到实体类的解决办法

XML文件中,Mybatis或MybatisPlus查询出的Sql结果未映射到对应得实体类上 xml文件中,Mybatis或者MybatisPlus查询出的Sql结果未映射到对应的实体类上 阅读详情

      开发中,实体类中的属性名和对应的表中的字段名不一定都是完全相同的,这样可能会导致用实体类接收返回的结果时导致查询到的结果无法映射到实体类的属性中,那么该如何解决这种字段名和实体类属性名不相同的冲突呢?

      方法一:通过在查询的SQL语句中定义字段名的别名的方式,让字段名的别名和实体类中的属性名一致,这样就可以实现实体类属性和表字段一一对应。(通过在SQL语句中定义别名的方法实现)

	<select id="queryCertificationInfoByCerNumber" parameterType="string" resultMap="certificationResultMap">
		SELECT cer_number cerNumber FROM, cer_time cerTime, cer_type cerType t_diamond_allinfo_gia WHERE cer_number = #{cerNumber}
	</select>

      方法二:通过<resultMap>来映射字段名和实体类属性名的一一对应关系。(使用Mybatis提供的解决方法)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jqscm.mapper.SearchMapper">

	<select id="queryCertificationInfoByCerNumber" parameterType="string" resultMap="certificationResultMap">
		SELECT * FROM t_diamond_allinfo_gia WHERE cer_number = #{cerNumber}
	</select>
	<!-- 通过resultMap映射实体类和表字段的关系 -->
	<resultMap type="CertificationInfo" id="certificationResultMap">
		<!-- 用id属性来映射主键字段 -->
		<id property="cerNumber" column="cer_number"/>
		<!-- 用result属性来映射非主键字段 -->
		<result property="cerTime" column="cer_time"/>
		<result property="cerType" column="cer_type"/>
		<result property="shape" column="shape"/>
		<result property="size" column="size"/>
	</resultMap>
</mapper>


MyBatis中数据库字段名与实体类属性名不一致 在使用 来持久化数据库时,有时候会碰到数据库中表中的字段与 实体类中属性名不一致的情况,在这种情况下 是不能完成字段的自动映射的。而通常情况下,数据库及实体类是不应该被改的的。所以要在不改变数据库以及实体类的情况下解决这个问题,下面是解决该问题的三种方式 1.1. 起别名 1.2. 可以指定映射关系 使用 时,在 语句配置中,要有 替换原来的 中的 要与查询到的字段名一致, 要与实体类的属性一致 1.3. 驼峰命名 这种情况下, 提供了一个全局属性 来解决两者名字不一致的问题.. 阅读详情

相关推荐

Jasper Report使用JSON数据源创建报表

最近在做一个项目小功能,表单结案要生成PDF报表。 起初,想用HTML模板(art-template模板引擎)编写,利用浏览器的打印功能保存成pdf文件下载。但是HTML编写好的模板,页码、页眉、页脚设置有坑,表单内容中的表格较多,表格不能设置跨页,导致跨页的表格内容与页眉重叠,没能解决这个问题。 于是,转战研究Jasper report生成报表,用更加专业的报表生成工具来做。刚开始,也是跌跌撞撞,遇到了很多问题,因为觉得没有退路了,必须要用这个搞出来,所以就硬着头皮去找各种资料。 主要使用的json

xiaogege2012的专栏 3314

mybatis—当表的字段名和实体类的列名不对应时的三种处理方式

1、使用别名 sql语句中:name as e_name2、驼峰式方法:   <!-- 驼峰式命名 --> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> 3、使用resultMap(在sq...

weixin_30699443的博客 153

使用 VPN 访问太理内部网相关问题总结【太原理工大学】

电脑连接 VPN,访问校园内部网相关问题总结,太原理工大学。

m0_52861684的博客 9829

Java --- mybatis解决一对一字段名与属性名的映射不一致问题

无

qq_46093575的博客 1329

flowable工作流源码解析-DB访问

Flowable用了mybatis组件,又实现了自己的command和interceptor机制。具体是怎么实现的呢? 我们以Deployment操作为例,来看看它的调用链 调用端是Service接口, 它委托自己的commandExecutor去执行具体的Command. Command最终会调用到EntityManager,然后委托给ibatis的sqlsession来完成操作。 其中CommandExcutor调用command的地方有些复杂,我们展开看: CommandExecutor会维护一系

coobee的博客 2476

centos8 安装新版bind9源码

bind一直在更新,使用了比较多的新架构 本文记录新版本的bind怎么安装,以及其依赖库的安装 1. 在https://www.isc.org/download/ 下载最新stable版本bind,本文以bind-9.17.9.tar.xz为例。将软件传到/root目录下。 也可以到https://ftp.isc.org/isc/bind9/ 下载更多历史版本 2. 安装基本的依赖库,像gcc、amake等 3. 需要安装libuv库,但直接用yum时可能安装不全 建议使用源码安装,需要安..

linggang_123的博客 2530

MyBatis学习笔记(八) —— 字段名和属性不一致的情况下,如何处理映射关系

字段名和属性不一致的情况,如何处理映射关系? 1、为查询的字段设置别名,和属性名保持一致 2、全局设置,可以自动将下划线映射为驼峰 3、使用resultMap自定义映射处理

程序猿杰哥的博客 674

Proteus仿真实战:基于IIC驱动SSD1306的0.96英寸OLED显示方案解析

本文详细解析了在Proteus仿真环境中基于IIC驱动SSD1306的0.96英寸OLED显示方案。从硬件搭建、IIC接口连接、软件驱动移植到常见问题排查,提供了全面的实战指导,帮助开发者快速实现OLED显示功能并优化性能。

weixin_28724661的博客 766

mybatis的xml映射问题

使用配置类方式实现mybatis流程解析以及遇到的总结和问题-xml映射问题研究目的第一种情况 默认情况(xml文件与dao文件在相同目录时)其实mybatis调用也就是将所有需要的东西都放到configuration类中:关于XML映射的问题 研究目的 最近在研究mybatis 因为总是使用spring的xml文件配置的方式或者yml配置的方式,今天想用配置类使用一下(因为application.xml整个文件其实就是一个配置类,yml没有研究过) 第一种情况 默认情况(xml文件与dao文件在相同目录时

weixin_45059961的博客 597

【BigWorld 游戏服务器引擎】Cell 架构设计介绍,及Java实现方案的探索

横向扩展(Scalability):通过动态增减CellApp和BaseApp的数量,可以轻松应对玩家人数的变化。世界可以做得非常大,只需增加更多的 Cell。负载分离(Load Separation):将不同性质的负载分离,避免了单一进程瓶颈。CPU 密集型的实时计算(CellApp)和 I/O 密集型的数据操作(BaseApp)互不影响。高效的视野管理(AOI):每个 Cell 只关心自己区域内和边界上的实体,大大降低了计算复杂度。容错性:某个CellApp。

代码时光 1174

【Bug已解决】codex: conversation context window exceeded / Token limit reached — CodeX CLI 上下文窗口超限解决方案

CodeX CLI 上下文窗口超限(context_length_exceeded)的解决方案,含开新会话、更大窗口模型、精简提示与限制工具输出。

博客 4170

mysql 列名映射_使用Mybatis时实体类属性名和表中的字段名不一致导致结果无法映射到实体类的解决办法...

问题描述java中的属性的命名规则为驼峰式命名,mysql中则使用下划线将各个不同的单词分开(feedback_time),这使得数据库中的表单字段与java实体类的属性名不一致,导致mybatis无法映射到java实体类解决方法方法一:通过在查询的SQL语句中定义字段名的别名的方式,让字段名的别名和实体类中的属性名一致,这样就可以实现实体类属性和表字段一一对应。(通过在SQL语句中定义别名的方法...

weixin_29698317的博客 976

使用FPGA实现MIPI DSI接口

通过使用FPGA,我们可以实现MIPI DSI接口,并在FPGA上生成相应的时序和电平转换电路。通过使用FPGA,我们可以实现MIPI DSI接口,并在FPGA上生成相应的时序和电平转换电路。在本文中,我们将探讨如何使用FPGA实现MIPI DSI接口,并提供相应的源代码。根据不同的发送状态,我们设置相应的输出信号。请注意,这只是一个基本的示例,用于说明如何使用FPGA实现MIPI DSI接口的发送功能。请注意,这只是一个基本的示例,用于说明如何使用FPGA实现MIPI DSI接口的发送功能。

ZdqDeveloper的博客 1683

MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34360651的博客 188

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

异常解决!Mybatis实体类属性名和表中字段名不一致的处理方案

以前也经常有学生问壹哥,[既然实体类的属性名和数据库的列名对不上会有问题,那我们在创建实体类的时候,让实体类的属性名跟数据库的字段名保持一致不就解决问题了吗?]其实这个事情是这样的,现在所有的公司对于Java变量的命名规范,和数据库列名的命名规范要求并不一致!Java的变量命名规范是驼峰命名法,数据库的列名命名规范是下划线区分单词命名法,这样Java实体类和数据库列名不一致就成了一种常态。...

一一哥 2198

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Mybatis 解决数据库字段名和实体类属性名不一致问题

一、问题描述 1.1 查询 password 字段为 null 现象 数据库字段名: 实体类属性名: @Data @NoArgsConstructor @AllArgsConstructor public class User { private int id; private String name; private String password; } Mapper 层: public interface UserMapper { //查询全部用户 List&l

m0_49692893的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

当你在MyBatis中使用 元素时,可以通过指定 javaType 和 jdbcType 属性来配置Java对象属性与数据库列的类型对应关系。在这个例子中,javaType 属性指定了Java对象属性的类型,而 jdbcType 属性指定了数据库列的类型。resultType 使用简单,适用于简单的查询,但对于复杂的映射关系,可能显得不够灵活。,需要什么,配置什么就好了,如上:需要pwd和password的映射,其它的可以不写。resultType 是一种简化的映射配置方式,用于指定查询结果的类型。

小孔靠得住的博客 1526

MyBatis解决实体类(POJO)的字段名和数据库表的列名不一致方法总结(四种方法)

使用@Results和@Result注解,可以在 Java 代码中显式定义映射关系。使用 XML 的也是一种常见的映射方式,适合复杂的映射需求。通过 SQL 查询中的别名,你可以直接在 SQL 中完成映射,简化代码。使用 MyBatis 的全局配置可以自动将下划线命名法转换为驼峰命名法,减少手动映射的工作量。根据项目的具体需求,可以选择不同的方式来处理字段和列名不一致的情况。

2301_79858914的博客 5029

解决使用MyBatis查询时数据表字段名与实体类属性名不一致的问题

MyBatis自定义映射resultMap详解 使用数据表: 首先提出三个问题: 1、当我们在MyBatis中使用select查询进行映射时,返回类型可以用resultType,也可以使用resultMap,那么二者有什么区别呢? 2、当我们在MyBatis中使用select查询进行映射时,当字段名与对应实体类属性名不一致会发生什么呢? 3、当我们在MyBatis中使用select查询进行映射时,如何处理多对一和一对多的映射关系呢? 下面我们便对上述问题进行解答: 一、resultType和resul

qq_48651377的博客 4599

mybatis(四)——mybatis解决数据库表字段名与实体类属性名不同的冲突

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突。 一、准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_pri

Elven_Shi的专栏 7586

实体类中的属性名和表中的字段名不一样 怎么办?

实体类中的属性名和表中的字段名不一样 怎么办? 第1种: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。下面展示一些 内联代码片。 <select id=”selectorder” parametertype=”int” resultetype=”me.gacl.domain.order”> select order_id id, order_no orderno ,order_price price form orders where order_id=#{id

m0_51684972的博客 3645

MyBatis中解决字段名与实体类属性名不相同的冲突

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突。     一、准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), ord

u010660138的博客 2990

Mybatis实体类的属性名与数据库表返回的字段名不一致导致查询为null的解决办法

MyBatis 的驼峰命名自动映射功能是通过将数据库表中的下划线命名的字段自动转换为 Java 实体类中的驼峰命名属性来实现的。例如,数据库表中的 “user_name” 字段可以自动映射到 Java 实体类中的 “userName” 属性。例如,创建一个名为 “mydb” 的数据库和一个名为 “MYDB” 的数据库,实际上是创建了同一个数据库。我们知道在设计数据库字段名时,使用下划线命名确实比较常见,而在 Java 中,实体类的属性名通常采用驼峰命名法。在 Windows 系统上。

Q_Boom的博客 1208

解决Mybatis当实体类中的属性名和表中的字段名不一致的问题

实体类如下: public class OsEntity { private String Filesystem; private String Used; private String Mounted; ...get() and set() } 表中数据 filesystem used mounted test.txt 50 /file...

TrueDei 2902

Mybatis实体类属性名和表中字段名不一致,怎么处理?

最近耀哥有学生出去面试,被问到 “Mybatis实体类的属性名和表中的字段名不一致该怎么处理?”,这其实是一个很经典的面试题,接下来耀哥就为大家详细解析一下这道面试题。然后在mapper.xml文件的select方法节点中,把resultType替换为resultMap。然后把mapper.xml文件中select查询节点中的resultMap再恢复成resultType。再一次根据主键查询TbAccount对象的方法,我们此时会发现,即使【再一次根据主键查询TbAccount对象的方法,我们会发现【...

威哥爱编程,华为 HDE,鸿蒙极客、CSDN博客专家、《鸿蒙 HarmonyOS 5/6 开发之路》系列图书第一作者 2358

【 MyBatis 】解决数据库中属性名和实体类中字段名不一致问题

在操作数据库的时候,要求属性名和字段名要相同,假如属性名和字段名不同,则会导致查出的数据为空 例如数据库中的字段名为pwd,而实体类中的属性名为password,那查出的结果肯定为null,所以需要进行处理 第一种方式 直接使用SQL语句直接进行处理 <select id="getUserById" parameterType="int" resultType="com.robot.pojo.User"> select id, name, pwd as password f

她的坏机器人 1649
上一篇: 解决Maven提示:Could not read settings.xml
下一篇: SpringMVC请求json数据报406错误
l4j
l4j
博客等级 码龄11年 28粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值