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

本文主要是介绍关于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

这篇关于关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/538437

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP