当前位置: 首页 > news >正文

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

方法1: 在mybatis核心配置文件中指定,springboot加载mybatis核心配置文件

springboot项目的一个特点就是0配置,本来就省掉了mybatis的核心配置文件,现在又加回去算什么事,总之这种方式可行但没人这样用

具体操作:

①创建mybatis核心配置文件,放在resources下,设置setting标签,开启驼峰命名

comjavasm.spring bOOt.m a p per  AdminMapper.xml  config

2  3  4  5  6  9  application.yml x springboot  x ÅMybatisConfig.java  configuration  PUBLIC --//mybatis. org//DTD Config 3. O//EN"  'http://mybatis- dtd¯ >  mybatis-config.xml  (settings)  (setting name=  settings)  gura 10K'  mapUnderscoreToCame1Case"

②在springboot的yml配置文件中配置mybatis核心配置文件

1

2

mybatis:

    config-location: classpath:config/mybatis-config.xml

方法2: 在springboot的配置文件中指定(常用)

mybatis都被整合到springboot项目中了,自然属性都被springboot自动配置了,现在的情况就类似于我们要去修改自动配置好的属性

我们只需要在springboot的配置文件中设置一下就行了

mybati s :  mapperlocations: classpath: / mapper/*. xml  confi gurati on :  map—underscore—to—camel—case: true

1

2

3

mybatis:

  configuration:

    map-underscore-to-camel-case: true

方法3: 写一个配置类 自定义注册器

除了修改属性,也可以直接写一个配置类,在类中重写方法,让springboot配置mybatis时运行我们自定义的方法(自定义注册器)而不去运行默认方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

@Configuration

public class MybatisConfig {

@Bean

public ConfigurationCustomizer configurationCustomizer(){

    return new ConfigurationCustomizer() {

        @Override

        public void customize(org.apache.ibatis.session.Configuration configuration) {

            configuration.setLazyLoadingEnabled(true);

            configuration.setMapUnderscoreToCamelCase(true);

            configuration.setLogImpl(Log4jImpl.class);

                }

            };

        }

}

方法4:起别名。

数据库表的字段的别名就起为实体类中对应属性名。

select emp_id as empId,emp_name as empName,emp_sal as salary from t_emp

方法5:进行ResultMap映射。

一次性定义,重复使用,避免重复起别名。

<resultMap id="employeeMap" type="com.atguigu.mybatis.entity.Employee"><!-- 使用id标签设置主键列和主键属性之间的对应关系 --><!-- column属性用于指定字段名;property属性用于指定Java实体类属性名 --><id column="emp_id" property="empId"/>   <!-- 使用result标签设置普通字段和Java实体类属性之间的关系 --><result column="emp_name" property="empName"/><result column="emp_salary" property="empSalary"/></resultMap><select id="selectEmployeeByRM" resultMap="employeeMap">select emp_id,emp_name,emp_salary from t_emp where emp_id=#{empId}</select>

Mybatis-plus方法

1.实体类添加注解

主要注释到实体类上的注解:

@TableName(value = …)
当数据库名与实体类名不一致或不符合驼峰命名时,需要在此注解指定表名

主键自增的设定:

@TableId(type = IdType.AUTO)
指定实体类的属性为对应的主键

@TableField注解

1、 主要用来解决实体类的字段名与数据库中的字段名不匹配的问题(数据库user_addr,字段useraddr未驼峰,mp默认开启驼峰)
2. 实体类中的属性字段在表中不存在的问题

1

2

3

4

// 用来解决数据库中的字段和实体类的字段不匹配问题

@TableField(value = "age")

// 用来解决实体类中有的属性但是数据表中没有的字段

@TableField(exist = false// 默认为true

2.在springboot的配置文件中指定(常用)

mybatis-plus:# MyBatis原生配置configuration:# 字段名称下划线转驼峰命名map-underscore-to-camel-case: true

相关文章:

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

方法1&#xff1a; 在mybatis核心配置文件中指定&#xff0c;springboot加载mybatis核心配置文件 springboot项目的一个特点就是0配置&#xff0c;本来就省掉了mybatis的核心配置文件&#xff0c;现在又加回去算什么事&#xff0c;总之这种方式可行但没人这样用 具体操作&…...

Flutter框架和原理剖析

Flutter是Google推出并开源的跨平台开发框架&#xff0c;主打跨平台、高保真、高性能。开发者可以通过Dart语言开发Flutter应用&#xff0c;一套代码同时运行在ios和Android平台。不仅如此&#xff0c;flutter还支持web、桌面、嵌入应用的开发。flutter提供了丰富的组件、接口&…...

NFS:使用 Ansible 自动化配置 NFS 客户端服务端

考试顺便整理博文内容整理涉及使用 Ansible 部署 NFS 客户端和服务端理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停息。所有其它的路都是不完整的&#xff0c;是人的逃…...

IntelliJ IDEA使用——Debug操作

文章目录 版本说明图标和快捷键查看变量计算表达式条件断点多线程调试 版本说明 当前的IntelliJ IDEA 的版本是2021.2.2&#xff08;下载IntelliJ IDEA&#xff09; ps&#xff1a;不同版本一些图标和设置位置可能会存在差异&#xff0c;但应该大部分都差不多。 图标和快捷键…...

uniapp项目实践总结(十八)自定义多列瀑布流组件

导语&#xff1a;有时候展示图片等内容&#xff0c;会遇到图片高度不一致的情况&#xff0c;这时候就不能使用等高双列或多列展示了&#xff0c;这时候会用到瀑布流的页面布局&#xff0c;下面就一起探讨一下瀑布流的实现方法。 目录 准备工作原理分析实战演练案例展示 准备工…...

Ubuntu 22.04LTS + 深度学习环境安装全流程

一、 CUDA Toolkit 安装 1. 选择需要安装的版本(下载地址) 2. 选择自己的系统版本获取下载地址和安装指令 3. 运行安装指令进行安装 wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run sudo sh cuda_12.2.…...

【lesson7】git的介绍及使用

文章目录 什么是gitgit的历史git使用在gitee上创建仓库git clone HTTPS地址git add .git add 文件名git commit “日志”git pushgit loggit rm 文件名git statusgit pull 什么是git git是版本控制器&#xff0c;那么什么是版本控制器呢&#xff1f; 下面讲个故事为大家讲解一…...

Keepalived+LVS高可用集群

目录 一、keepalived介绍&#xff1a; 二、keepalived工具介绍&#xff1a; &#xff08;1&#xff09;管理 LVS 负载均衡软件&#xff1a; &#xff08;2&#xff09;支持故障自动切换&#xff1a; &#xff08;3&#xff09;实现 LVS 负载调度器、节点服务器的高可用性&…...

AK 9.12 百度Java后端研发B卷 笔试

T1(博弈论) #include <bits/stdc.h>#define endl \nusing namespace std;typedef long long LL;const int N 1e5 10;int n, m, t;void solve() {cin >> n >> m; t n m - 2;if(t & 1) cout << "Yes" << endl;else cout <&l…...

使用Python和XPath解析动态JSON数据

JSON动态数据在Python中扮演着重要的角色&#xff0c;为开发者提供了处理实时和灵活数据的能力。Python作为一种强大的编程语言&#xff0c;提供了丰富的工具和库来处理动态JSON数据使得解析和处理动态JSON数据变得简单和高效。例如&#xff0c;使用内置的json模块&#xff0c;…...

记录一个iOS实现视频分片缓存拖拽快进不能播放的问题

代码现状 首先来看一下我们将视频数据塞给请求的代码 - (void)finishLoadingWithLoadingRequest:(IdiotResourceTask *)task {// printf("哈哈执行到这里执行到到这里\n");printf("哈哈哈数量数量%ld\n", self.taskList.count);//填充信息task.loadingRe…...

如何解决 503 Service Temporarily Unavailable?

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…...

keil报错:Flash Download failed - Could not load file‘..\..\Output\Template.axf

keil报错&#xff1a;Flash Download failed - Could not load file’…\Output\Template.axf&#xff0c;如下图所示&#xff1a; 原因是很多.h文件没有定义位置&#xff0c;可以按照下图操作&#xff1a; 而且&#xff0c;如果是想使用压缩包&#xff0c;那一定要关闭keil后…...

从一到无穷大 #16 ByteSeries,思考内存时序数据库的必要性

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 引言 在[3]中我基于Gorilla讨论了时序数据库设置cache的可行性&#xff0c;最后得出结论&…...

分支和远程仓库

分支 查看分支 git branch -v 创建分支 git branch 分支名 切换分支 git checkout 分支名 合并分支 git merge 分支名 把指定的分支合并到当前分支上 查看当前所有远程地址别名&#xff1a; git remote -v 起别名&#xff1a; git remote add 别名 远程地址推送本地分支上的…...

编译原理 —— 编译器

文章目录 编译原理阶段词法分析器语法分析器语义分析器中间代码生成器代码优化器代码生成器 编译原理阶段 编译器分为9个阶段来将我们所编写的高级代码编译为计算机可执行的机器码 源程序词法分析器语法分析器语义分析器中间代码生成器独立于机器的代码优化器代码生成器依赖于…...

Python灰帽编程——错误异常处理与面向对象

文章目录 错误异常处理与面向对象1. 错误和异常1.1 基本概念1.1.1 Python 异常 1.2 检测&#xff08;捕获&#xff09;异常1.2.1 try except 语句1.2.2 捕获多种异常1.2.3 捕获所有异常 1.3 处理异常1.4 特殊场景1.4.1 with 语句 1.5 脚本完善 2. 内网主机存活检测程序2.1 scap…...

【每日一题】154. 寻找旋转排序数组中的最小值 II

154. 寻找旋转排序数组中的最小值 II - 力扣&#xff08;LeetCode&#xff09; 已知一个长度为 n 的数组&#xff0c;预先按照升序排列&#xff0c;经由 1 到 n 次 旋转 后&#xff0c;得到输入数组。例如&#xff0c;原数组 nums [0,1,4,4,5,6,7] 在变化后可能得到&#xff1…...

Linux中如何获取输入设备(如触摸屏、按键等)的事件信息

Linux中如何获取输入设备&#xff08;如触摸屏、按键等&#xff09;的事件信息 在Linux中&#xff0c;可以使用getevent命令来获取输入设备&#xff08;如触摸屏、按键等&#xff09;的事件信息。如果你想在C程序中获取输入设备事件&#xff0c;可以使用以下步骤&#xff1a; …...

Java学习day05:排序,选择、冒泡、快速、二分、杨辉三角

声明&#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总&#xff0c;主要是每天的知识点题解&#xff0c;算是让自己巩固复习&#xff0c;也希望能给初学的朋友们一点帮助&#xff0c;大佬们不喜勿喷(抱拳了老铁&#xff01;) Java学习day05&#xff1a;排序&#xff0…...

当欧姆龙NX1P2遇上丰田PC10G:一次EIP实例ID通信的“踩坑”与“填坑”实录

当欧姆龙NX1P2遇上丰田PC10G&#xff1a;EIP实例ID通信的实战解析 在工业自动化领域&#xff0c;不同品牌设备间的通信集成往往充满挑战。最近一次非标设备联调项目中&#xff0c;我们遇到了欧姆龙NX1P2控制器与丰田PC10G设备通过EtherNet/IP&#xff08;EIP&#xff09;协议通…...

动态规划详解:从入门到精通,这四个案例让你彻底掌握DP思想

面试必考、算法进阶的核心&#xff0c;一篇文章帮你打通任督二脉在算法学习的过程中&#xff0c;动态规划&#xff08;Dynamic Programming&#xff0c;简称DP&#xff09;绝对是让很多人头疼的一个难点。很多初学者看到DP问题就发怵&#xff0c;其实只要掌握了核心思想&#x…...

【Mojo跨语言互操作权威配置白皮书】:实测TensorFlow/NumPy/Pandas三方库零报错接入方案

第一章&#xff1a;Mojo跨语言互操作的核心原理与架构定位Mojo并非传统意义上的独立运行时语言&#xff0c;而是以“Python超集”为设计原点、深度嵌入LLVM生态的系统级编程语言。其跨语言互操作能力不依赖FFI桥接层或胶水代码&#xff0c;而是通过统一的中间表示&#xff08;M…...

突破语言壁垒:XUnity.AutoTranslator的创新解决方案

突破语言壁垒&#xff1a;XUnity.AutoTranslator的创新解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 当你打开一款期待已久的国外游戏&#xff0c;却发现满屏外文让剧情理解寸步难行&#xff1…...

Java 从入门到精通(八):抽象类和接口到底怎么选?看懂之后,面向对象才算真的入门

Java 从入门到精通&#xff08;八&#xff09;&#xff1a;抽象类和接口到底怎么选&#xff1f;看懂之后&#xff0c;面向对象才算真的入门 学到封装、继承、多态之后&#xff0c;很多人会有一种“好像差不多懂了”的感觉。 会定义类&#xff0c;会 new 对象&#xff0c;也知道…...

【PAT甲级真题】- PAT Judge (25)

题目来源 PAT Judge (25) 题目描述点击链接自行查看 注意点&#xff1a; 排序&#xff1a;先按总分再按解决题目数再按id 思路简介 思路很简单&#xff0c;直接模拟即可 但是坑倒是很多 主要是要区分编译没过和过了但是得 0 分 方案&#xff1a; 初始化时分数为 -2 编译没…...

OpenClaw成本优化方案:ollama GLM-4.7-Flash自建模型接口实践

OpenClaw成本优化方案&#xff1a;ollama GLM-4.7-Flash自建模型接口实践 1. 为什么需要关注OpenClaw的token消耗问题 第一次用OpenClaw完成自动化周报任务时&#xff0c;我盯着账单倒吸一口凉气——生成三份周报竟然消耗了接近15万token。这让我意识到&#xff0c;如果不解决…...

Qwen3-VL-8B数据库课程设计:构建一个多模态商品智能检索系统

Qwen3-VL-8B数据库课程设计&#xff1a;构建一个多模态商品智能检索系统 最近有个学弟跑来问我&#xff0c;说数据库课程设计不知道做什么好&#xff0c;想做个有技术含量又能拿高分的项目。我给他提了个建议&#xff0c;用现在很火的多模态大模型&#xff0c;结合传统的数据库…...

实战jdk1.8新特性:在快马平台用lambda和stream处理订单数据

最近在重构一个老项目的订单模块时&#xff0c;决定全面升级到JDK1.8。这个版本引入的lambda和Stream API真是让人眼前一亮&#xff0c;尤其是处理集合数据时&#xff0c;代码量直接减半。今天就用InsCode(快马)平台带大家实战这些新特性&#xff0c;模拟一个订单数据处理系统。…...

手指划过屏幕放大模型界面,环氧树脂层和纤维基体在激光路径下呈现出清晰的物理场分布。突然发现这个双层材料烧蚀模型跑得格外顺畅——看来前几天通宵调参没白费

comsol激光清洗、烧蚀双层材料 表面一层50μm厚度的环氧树脂(可更换成其他材料)&#xff0c;基体材料为纤维材料。 添加功率为13W的激光进行清洗或烧蚀 模型非常成功、角度选择很奈斯在COMSOL里建模时有个小细节特别关键&#xff1a;把环氧树脂层的厚度参数设为全局变量。别小看…...