关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结

    • 测试一:没有添加 自动转化的配置,且domain中的属性名称和数据库的字段名称一致
    • 测试二:没有添加自动转化配置i,domain属性名userPassword和数据库字段名user_password不一致
    • 测试三:使用mybatisX生成代码前设置 生成的domain名称与数据库的表名一致,并且domain的属性的名称userPassword也是和数据库user_password不一致
    • 测试四:将配置自动转化设置为false,其他和测试三一致
    • 总结:

使用MybatisX 自动生成 代码

测试
测试类的@ Test 注解的包是 org.junit.jupiter.api.Test
使用插件“generateAllSetter”自动生成对象的所有的setter方法

测试mybatisPlus字段自动转换驼峰
新建分支测试 dev

测试用的数据库为

create table user_test
(
    id            bigint auto_increment
        primary key,
    username      varchar(10)  not null,
    user_password varchar(256) not null
)
    comment 'mybatisplus自动转化驼峰';

测试一:没有添加 自动转化的配置,且domain中的属性名称和数据库的字段名称一致

此时没有添加 mybatisplus自动转化的配置
使用插件自动生成的,这里设置的是驼峰
在这里插入图片描述

指我们生成的domain上面的类名是UserTest,与数据库不同user_test
在这里插入图片描述

domain中的属性名称和数据库的字段名称是一致的
通过测试

测试二:没有添加自动转化配置i,domain属性名userPassword和数据库字段名user_password不一致

在这里插入图片描述
在这里插入图片描述

此处设置的选项是没有选择 actual column,表示生成的domain中属性名不和数据库字段名保持一致
image.png
通过测试

猜想,mybatisplus自动转化驼峰是内部生成的,而实体类的属性自动生成驼峰是mybatisX做的

测试三:使用mybatisX生成代码前设置 生成的domain名称与数据库的表名一致,并且domain的属性的名称userPassword也是和数据库user_password不一致

在这里插入图片描述
在这里插入图片描述

选择的是 same as tablename,表示这个domain的类名和数据库一致,并且domain的属性的名称也是和数据库不一致
image.png
测试通过

在mybatisplus中 自动转化默认值是true

测试四:将配置自动转化设置为false,其他和测试三一致

image.png
配置表示,将数据库的字段的下划线的命名映射成驼峰的方式从默认值为true改为false,不进行转化
测试不通过

报错信息:Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘userPassword’ in ‘field list’
image.png

总结:

mybatisplus 自动转化配置 mapUnderscoreToCamelCase 默认值是 true
它会将数据库字段名的格式在驼峰和下划线两种格式之间转化
false则关闭转化

我们在设计数据库表的时候,字段名最标准的设计是下划线
使用插件生成的domain 第一页选择camel,表示生成的domain类名为驼峰式
在这里插入图片描述

使用插件第二页生成的domain的选项就不用选择 actual column,则生成的domain的属性是驼峰式的
在这里插入图片描述

此时我们的mybatisplus的自动转化配置默认值是true,即表示会将数据库的下滑线的字段名写法映射成驼峰式的写法,这就和我们的domain属性名相对应。

若我们的数据库字段名的写法是驼峰式(不符合规范)
那我们使用插件第二页生成的domain的选项就必须选择 actual column,表示和数据库的字段名保持一致。
但是由于mybatisplus自动转化配置中,默认值是true,则会将数据库的字段名转化为下划线的格式,最后导致与我们的domain的属性名不一致,产生报错。


个人博客:YLXOVO

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/271003.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【csapp】cachelab

文章目录 Part APart B32 * 3264 * 6461 * 67 实验全程参考大佬的博客CS:APP3e 深入理解计算机系统_3e CacheLab实验 ,感觉大佬在矩阵转置那块介绍的还是有些简略,我自己又做了点动图加以补充理解。膜拜大佬! Part A 先解决解析命令行参数的…

年龄相关的微环境变化突显了PDGF-C在ER+乳腺癌转移复发中的作用

今天给同学们分享一篇实验文章“Age-associated microenvironmental changes highlight the role of PDGF-C in ER breast cancer metastatic relapse”,这篇文章发表在Nat Cancer期刊上,影响因子为22.7。 结果解读: ER乳腺癌转移复发的同种…

LH7904D 太阳能警示灯 0.4W×2

应用范围: 可安装在电线杆,路灯,围挡,交 通护栏及各种杆式固体等场所起警示作用。 产品特点: 采用进口PS材质; 光控无开关,白天不闪,昏暗环境自动闪烁,无需手动操作,省时省事; …

cfa一级考生复习经验分享系列(十)

我的背景:我是在职备考CFA的,工作也是跟金融不相关的,工作日基本只有晚上能看最多2-3小时,主要靠周末大块时间复习。由于平时工作忙碌直到9月中才开始看各种资料。但是可能我复习策略比较有效率,所以最后4次官方mock平…

彻底搞懂MySQL的执行计划

欢迎关注微信公众号:互联网全栈架构 MySQL执行计划(EXPLAIN)可以提供SQL运行的一些信息,相当于模拟SQL的执行,从而让我们可以对SQL语句做更深入的分析和了解。在实际开发过程中,我们经常会使用执行计划来分…

编写fastapi接口服务

FastAPI是一个基于 Python 的后端框架,该框架鼓励使用 Pydantic 和 OpenAPI (以前称为 Swagger) 进行文档编制,使用 Docker 进行快速开发和部署以及基于 Starlette 框架进行的简单测试。 step1:安装必要库 pip install fastapi uvicorn st…

FLStudio21中文版水果编曲软件好用吗?如何下载最新版本

FL Studio21版是一款在国内非常受欢迎的多功能音频处理软件,我们可以通过这款软件来对多种不同格式的音频文件来进行编辑处理。而且FL Studio 21版还为用户们准备了超多的音乐乐器伴奏,我们可以直接一键调取自己需要的音调。 FL Studio21版不仅拥有非常…

基于TM的遥感数据的叶面积指数估算解决方案

1.背景与技术路线 叶面积指数是重要的植被结构参数,反演叶面积指数是植被遥感的重要研究内容之一,其影响生态系统的物质和能量循环,成为作物生长、路面过程、水文和生态等模型的输入参数或状态变量。今年来,对也铭记指数的反演已…

vue-awesome-swiper轮播组件

安装版本&#xff1a;"swiper": "^6.0.0", 安装版本&#xff1a;"vue-awesome-swiper": "^4.1.1", <div class"swiper_conter"><swiper class"swiper" :options"swiperOption" ref"mySw…

Windows系统配置pytorch环境,Jupyter notebook编辑器安装使用(深度学习本地篇)

如今现在好一点的笔记本都自带英伟达独立显卡&#xff0c;对于一些简单的深度学习项目&#xff0c;是不需要连接服务器的&#xff0c;甚至数据量不大的话&#xff0c;cpu也足够进行训练学习。我把电脑上一些以前的笔记整理一下&#xff0c;记录起来&#xff0c;方便自己35岁事业…

快速构建空间场景轻应用的一次体验分享

零&#xff1a;前言 最近虚竹哥发现一款基于Web端打造的轻量化工具创作平台&#xff0c;用于快速构建空间场景轻应用&#xff0c;它就是Mapmost Alpha。内置丰富且多样化风格的三维场景、三维模型、数据服务、POI数据、图片、视频、网页等资源&#xff0c;通过拖拉拽的方式&am…

YOLOv8改进 | 主干篇 | RevColV1可逆列网络(特征解耦助力小目标检测)

一、本文介绍 本文给大家带来的是主干网络RevColV1&#xff0c;翻译过来就是可逆列网络去发表于ICLR2022&#xff0c;其是一种新型的神经网络设计(和以前的网络结构的传播方式不太一样)&#xff0c;由多个子网络&#xff08;列&#xff09;通过多级可逆连接组成。这种设计允许…

JavaScript进阶(事件+获取元素+操作元素)

目录 事件基础 事件组成 执行事件的步骤 获取元素 根据ID获取元素 根据标签名获取元素 获取ol中的小li 类选择器&#xff08;html5新增的I9以上支持&#xff09; 获取body和html 操作元素 innerText和innerHtml 表单标签 样式属性操作 操作元素总结 事件基础 事…

铁山靠之——HarmonyOS组件 - 2.0

HarmonyOS学习第二章 一、HarmonyOS基础组件的使用1.1 组件介绍1.2 Text1.2.1 文本样式1.2.2 设置文本对齐方式1.2.3 设置文本超长显示1.2.4 设置文本装饰线 1.3 Image1.3.1 设置缩放类型1.3.2 加载网络图片 1.4 TextInput1.4.1 设置输入提示文本1.4.2 设置输入类型1.4.3 设置光…

关于Python里xlwings库对Excel表格的操作(十八)

这篇小笔记主要记录如何【设置单元格数据的对齐方式】。前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 &#xff08;1&#xff09;如何安装导入xlwings库&#xff1b; &#xff08;2&#xff09;如何在Wps下…

MySQL递归公用表表达式

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f5fc;专栏系列&#xff1a;MySQL知识 &…

【单调队列】LeetCode1499:满足不等式的最大值

涉及知识点 单调队列 题目 给你一个数组 points 和一个整数 k 。数组中每个元素都表示二维平面上的点的坐标&#xff0c;并按照横坐标 x 的值从小到大排序。也就是说 points[i] [xi, yi] &#xff0c;并且在 1 < i < j < points.length 的前提下&#xff0c; xi &…

【低照度图像增强系列(2)】Retinex(SSR/MSR/MSRCR)算法详解与代码实现

前言 ☀️ 在低照度场景下进行目标检测任务&#xff0c;常存在图像RGB特征信息少、提取特征困难、目标识别和定位精度低等问题&#xff0c;给检测带来一定的难度。 &#x1f33b;使用图像增强模块对原始图像进行画质提升&#xff0c;恢复各类图像信息&#xff0c;再使用目标检…

nosql--RedisTemplate定制化

nosql--RedisTemplate定制化 1、序列化2、如果使用redis中保存数据会使用默认的序列化机制&#xff0c;导致redis中保存的对象不可视2.1将所有的对象以JSON的形式保存2.2配置reids自定义配置2.3转化成功2.4配置文件代码 3redis客户端 1、序列化 stringRedisTemplate RedisTemp…

虚拟机Windows Server 2012 与ubuntu的安装与布置

介绍虚拟机 虚拟机&#xff08;Virtual Machine&#xff0c;简称VM&#xff09;是一种通过软件模拟的计算机系统&#xff0c;可以在一台物理计算机上同时运行多个独立的操作系统和应用软件。虚拟机将物理计算机的硬件资源&#xff08;如处理器、内存、硬盘等&#xff09;虚拟化…