Mybatis实体类属性名与数据库类名不对应的两种解决方法

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

在Mybatis开发时,如果 Bean的属性名与数据库的类名不一致时,CRUD将出现问题。
数据库类名
在这里插入图片描述
Bean的属性名:(默认)
在这里插入图片描述
调整Bean中的属性名:(测试不一致)
在这里插入图片描述
此时原有代码将会报错,可预见的报错为 java文件中所有用到set,与get方法的地方。
不可以预见的报错,在配置文件中。
在这里插入图片描述
方法一{测试,有问题}
在配置文件中,将所有的属性值调整成与Bean中的属性名一致。
在插入和更新操作中不存在问题。问题来了!!!
在进行【查询操作时】----->查询所有!
在这里插入图片描述
只有username封装到数据库中了,其他字段都没有被封装到数据库中!
原因:MySQL数据库在Windows系统下区分大小写!
在这里插入图片描述
所以只有username被封装到了数据库中!

解决办法
1、使用别名
映射配置文件中修改

在这里插入图片描述
结果:
在这里插入图片描述
优点:执行效率高,因为是在SQL语句的层面上解问题。

2、配置resultMap

在这里插入图片描述
在这里插入图片描述
缺点:执行效率(多一次解析)较低
优点:开发效率变快,因为所有的查询操作,都可以将resultType返回结果集改成resultMap,后续改造很便 利。如果使用第一种给 SQL 列表 起 别名,SQL语句改造量比较大。

mybatis根据数据库自动生成实体类,映射类,dao 根据开发自行配置xml,并通过cmd命令进行执行,并对应生成文件,并将生成的文件对应复制到项目中就行了 立即下载

相关推荐

ROS水下仿真神器uuv_simulator:从零搭建水下机器人测试环境(附Gazebo配置全流程)

本文详细介绍了如何使用ROS和uuv_simulator从零搭建水下机器人仿真测试环境,包括Gazebo配置全流程。通过系统环境准备、水下世界构建、机器人模型定制开发等步骤,帮助开发者在虚拟海洋环境中高效验证算法,大幅降低研发成本。特别适合水下机器人研发人员参考。

ujm5678901的博客 264

MyBatis中的全量settings配置样例

今天在学习MyBatis的时候,书中提供了一个settings的配置样例,但我看着实在头大,索性先记下: <!-- 全局settings的配置样例 --> <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> <setting name="multipleResultSetsEnable

weixin_41105542的博客 385

嵌入式软件面试常见问题及答案

干了多年的嵌入式,被面试过,也面过不少新人,下面这些是面试中很常见的一些问题及答案,答案可以根据自己的经验自己思考下。--持续补充并更新

weixin_37553721的博客 6026

ssm中mybatis处理数据库(mysql)与pojo属性中类型不一致(string转date)

一般在表设计的时候会考虑到数据库字段类型和java中属性一致的问题,但是也有可能会出现一些情况导致类型不一致的问题,比如:二次开发中需求更改等。此时数据库和java中的代码不能随便更改,所以考虑的思路是通过typeHandler作为中间体来把类型转换。         当然,如果可以直接在获取字段后,直接通过simpleFormart来转换后,来处理数据就可以了。         此方法是在获

LUNG108的博客 7844

博途WinCC上位机避坑指南:从工控机选型到趋势图优化的完整流程

本文详细解析了博途WinCC上位机开发全流程,从工控机选型到趋势图优化的关键技巧。针对工业自动化场景,提供硬件配置指南、网络优化方案和性能提升策略,帮助工程师避开常见陷阱,实现稳定高效的HMI系统部署。特别强调PC Station与传统触摸屏的选型对比及SIMATIC NET配置优化。

pp12345的博客 279

若依集成mybatisplus、兼容旧分页【亲测有效】

service类继承ServiceImpl类 实现 你的Service接口。hutool工具包和lombok工具包如果不需要的话可以自行删除并修改后面的类里面的代码。自带的pagehelper用的1.4.6里面的jsqlparser用的4.5.0。mybatis-plus用的3.4.2里面的jsqlparser用的4.0.0。jsqlparser包,不剔除是这样的,有个冲突,我用的前端写的请求,返回的格式和原来的一样,已兼容。你的Entity类上面需要增加表的名字。

lh155136的博客 3566

mysql表属性与mybatis得_Mybatis 当实体属性与数据库字段不一致时的几种情况以及解决方式...

1.要么改实体类属性名2.sql语句中加别名3.mapper中加关联映射resultMap============================先让mybatis开启驼峰命名在application.yml配置文件中添加Mybatis的配置mybatis:type-aliases-package: com.mybatisplus.pojo # 实体类包别名作用:可以用实体类名称代替实体类的相...

weixin_42512913的博客 217

论文学习:Towards Automated Infographic Design:Deep Learning-based Auto-generation of Extensible Timeline

title: “Towards Automated Infographic Design:Deep Learning-based Auto-generation of Extensible Timeline” tags: [“论文评述”, “报告”] date: 2019-08-22 author: 叶慧 mathjax: true 论文:Towards Automated Infograph...

xiaoyehahaha的博客 733

MyBatis 查出数据不一致 MyBatis返回数据和数据库查询不一致

1、出现MyBatis返回数据比 实际sql查询返回的数据要少的情况,一般可能是resultMap 标签配置错误2、一对一的关联查询,可以不用标签进行关联查询, 可以直接对象名.属性的方式进行配置,如:user.id,可以避免出现 MyBatis返回数据比,sql查询返回的少。-- 对象名.属性, 避免使用 标签 -->2.2、一对一的关联查询,可以不用SELECT3、一对一的关联查询,别用进行映射关系维护的,反正不是我用的。

HaHa_Sir的博客 8790

毕业设计:丹麦电力电价预测预测未来24小时的电价pytorch+lstm+历史特征和价格+时间序列 电价预测模型资源 完整代码数据可直接运行

毕业设计:丹麦电力电价预测预测未来24小时的电价pytorch+lstm+历史特征和价格+时间序列 电价预测模型资源 完整代码数据可直接运行

356

【Simulink教程案例7】基于Simulink的滑模控制器设计与实现

欢迎订阅滑膜控制是一种变结构控制策略,其和常规控制方法的主要区别在于控制的不连续性,即一种使系统结构随时间变化的开关特性。所以,滑膜控制器也叫做变结构控制器,其本质是一类特殊的非线性控制器,并且这种非线性为不连续性。滑膜控制器和其他控制方式最大的区别在于其结构的不固定性,在其工作过程中,系统当前的状态会发生变化,使得系统按照预先设置的“滑动模态”的状态轨迹运动。正是由于这个特点,滑膜控制器具有快速响应的优点。滑模控制的基本定义如下所示:1).穿越切换面上的某个点;2).从切换面上的某个点离开;

FPGA/MATLAB学习教程/源码/项目合作开发 3244

Mybatis 当实体属性与数据库字段不一致时的解决方案

Mybatis 当实体属性与数据库字段不一致时的解决方案学习要点Mybatis 当实体属性与数据库字段不一致时的解决方案Mybatis 当实体属性与数据库字段不一致时的解决方案1. MyBatis简单项目搭建参考2. 修改代码1.项目结构 2.添加User1实体类package com.pkk.entity;/** * @author peikunkun * @version

昆仔的博客 1万+

【nerfStudio】1-在windows上安装nerfStudio

安装Git。安装Visual Studio 2022。在安装CUDA之前必须完成此步骤。必须在“桌面开发与C++”工作流程(在BuildTools版本中称为“C++构建工具”)中包含所需的组件。Nerfstudio要求。我们建议使用conda来管理依赖关系。在继续之前,请确保安装了Conda。 依赖关系 PyTorch 请注意,如果安装了低于2.0.1的PyTorch版本,则应卸载先前版本的pytorch、functorch和tiny-cuda-nn。 基于CUDA 11.8的Torch 2.0.1 安装基

dlhlSC的博客 1693

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

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

一一哥 2207

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

MyBatis基础——实体类属性名与数据库表列名不一致时怎么查询数据

假如我们使用Dao+映射文件的方式操作数据表时,实体类的属性名与数据库列名不一致时我们该怎么查询数据。 实体类的属性名与数据库列名不一致时查询全部数据: 执行结果为: 我们发现只有money一个属性有值,其余属性均为默认值 这种情况下,如果想要查询数据,则需要修改映射文件 第一步,在映射文件下面加入resultMap标签: <!-- 实体类属性与数据库的列的对应关系 --> &l...

qq_44066201的博客 2684

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

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

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

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

MyBatis-Plus(二)设置实体类对应的表名、字段名

设置实体类对应的表名、字段名 一、设置关联的表名 1、默认情况下,如果数据库表是使用标准的下划线命名,并且能对应上实体类的类名,我们就不需要特别去手动匹配。比如有张 user_info 表,那么会自动匹配下面这个实体类: @Data public class UserInfo { private Integer id; private String userName; private String passWord; } 2、如果数据库中所有表都有个表名前缀,比如我们想让 t_us

Zack_tzh的博客 6万+

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

通常我们设计数据库表字段时会使用下划线拼接,而javaBean中通常使用驼峰命名表示属性。如表中的某个字段user_id-->userId,如何解决数据库字段名和实体类属性名不一致的问题问题呢? 方法一:使用别名的形式 ​ <select id="findByTel" resultType="user"> select user_id as userId, age,...

曰业而安的博客 2524

实体类属性名与数据库列名不一致解决方案

实体类属性和数据库列名不一致,不能自动封装数据。

学习笔记 1854

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

最近耀哥有学生出去面试,被问到 “Mybatis实体类的属性名和表中的字段名不一致该怎么处理?”,这其实是一个很经典的面试题,接下来耀哥就为大家详细解析一下这道面试题。以前也经常有学生问耀哥,[既然实体类的属性名和数据库的列名对不上会有问题,那我们在创建实体类的时候,让实体类的属性名跟数据库的字段名保持一致不就解决问题了吗?其实这个事情是这样的,现在所有的公司对于Java变量的命名规范,和数据库列名的命名规范要求并不一致!

千锋教育 931

解决MyBatis中查询列名和实体类中属性名不一致的两种方法

方法一:起别名 只要改动映射配置文件的查询条件就可以了 格式为: 实体属性名 as 数据库表中列名 这种方式执行效率最高,因为它直接从sql语句的层面解决了问题 方法二: 配置一个查询结果的类名和实体类的属性名的对应关系 这是原来查询时的resultType 配置完成后,将resultType改为resultMap 其中, 所配置的resultMap中的id名要和select中的resutM...

Chen_Sir____的博客 1250

MyBatis_解决实体类属性名与数据库字段名不一致

实体类属性名与数据库字段名如下所示 此时我们进行查询: 可以看到PWD属性为空 <!-- 全字段查询语句本质上如下: select id,name,password from mybatis.user where id = #{ID}; 数据库返回password字段的数据并查找password属性进行赋值 但实体类中并没有password属性 故会发生属性名与字段名不一致时查询失败的问题 --> 解决方式: 一.直接在sql语句中设置别名 <!--根.

Mudrock__的博客 1000

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

MyBatis中当实体类中的属性名和表中的字段名不一样时,怎么办? 解决方案 写sq语句时起别名,别名跟类名属性保持一致 在MyBatis的全局配置文件中开启驼峰命名规则 <configuration> <settings> <!-- 开启驼峰命名规则,可以将数据库中的下划线映射为驼峰命名 --> <!-- ...

zhangxuelong461的博客 2591

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

通常我们创建数据库表的时候,会将表中的字段名和实体类的属性名命名一致,但有时由于一些其他原因,我们无法这么做,这时,有以下几个常用的解决方案: 1. 在写sql语句时起别名 2. 在MyBatis的全局配置文件中开启驼峰命名规则 驼峰命名规则就像骆驼驼峰有一个突起点,例如employee_name用驼峰命名可表示为employeeName,其中中间的大写字母可看为突起驼峰的最高点。...

smarthunya的博客 971

02_Mybatis实体类的属性名和数据库表中字段名不匹配

Mybatis实体类的属性名和数据库表中字段名不匹配 使用别名查询 <!--配置查询所有操作--> <select id="findAll"resultType="com.itheima.domain.User"> select id as userId,username as userName,birthday as userBirthday, sex as userSex,address as userAddress from user </select>

qq_43750949的博客 296

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

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

weixin_34355559的博客 167
上一篇: Mybatis insert操作细节【ID】
下一篇: Mybatis中使用Dao实现类实现增删改查【实际开发中使用代理dao】
JSON_ZJS
博客等级 码龄9年 30粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值