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

关于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_incrementprimary 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

http://www.lryc.cn/news/269276.html

相关文章:

  • css中的BFC
  • 音视频类App广告变现如何破局,最大化广告变现收益,让应用增收?
  • 基于llama-index对embedding模型进行微调
  • 如何本地搭建FastDFS文件服务器并实现远程访问【内网穿透】
  • spring基于Xml管理bean---Ioc依赖注入:对象类型属性赋值(2)----内部bean的引入(bean和bean之间的引入)、(3)级联方式注入
  • Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类
  • 如何解决报错:Another app is currently holding yum lock?
  • electron使用electron-builder进行MacOS的 打包、签名、公证、上架、自动更新
  • RAD Studio 12 安装激活说明及常见问题
  • JavaScript实现视频共享
  • uniapp框架——vue3+uniFilePicker+fastapi实现文件上传(搭建ai项目第二步)
  • 一篇文章带你入门PHP魔术方法
  • 【数据库系统概论】第6章-关系数据库理论
  • 算法设计与分析实验报告-贪心算法
  • Unity读取服务器声音文件
  • 掌握ElasticSearch(一):Elasticsearch安装与配置、Kibana安装
  • 《剑指offer》Java版--13.机器人的运动范围(BFS)
  • 基于流程挖掘的保险理赔优化策略实践
  • Docker五 | DockerFile
  • 2023年度总结:技术旅程的杨帆远航⛵
  • SpringBoot+AOP+Redis 防止重复请求提交
  • 偷流量、端口占用、网络负载高、socket创建释放异常等Android高阶TCP/IP网络问题定位思路
  • 《人人都能用英语》学习笔记
  • NFC与ZigBee技术在智慧农业物联网监测系统中的应用
  • k8s-cni网络 10
  • 听GPT 讲Rust源代码--src/tools(27)
  • 经济危机下,我们普通人如何翻身?2024创业新风口,适合普通人的创业项目
  • 深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第五节 引用类型复制问题及用克隆接口ICloneable修复
  • python中基本元素的pop函数
  • MPLS动态协议LDP配置示例