关于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.mzph.cn/news/580192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

装饰模式(单一责任)

Decorator(装饰模式:单一责任模式) 链接:装饰模式实例代码 解析 目的 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性&#xff…

<JavaEE> TCP 的通信机制(三) -- 滑动窗口

目录 TCP的通信机制的核心特性 四、滑动窗口 1)什么是滑动窗口? 2)滑动窗口的作用是什么? 3)批量传输出现丢包如何处理? 1> 接收端ACK丢包 2> 发送端数据包丢包 4)适用性 TCP的通…

为什么深度学习神经网络可以学习任何东西

下图你所看到的,是著名的曼德尔布罗特集,我们可以见证这个集合呈现出的复杂形态: 要理解神经网络如何学习曼德尔布罗特集,我们首先需要从最基础的数学概念讲起:什么是函数?函数本质上是一个将输入转化为输出…

机器学习---adaboost二分类、回归

1. adaboost二分类 import numpy as np import matplotlib.pyplot as pltfrom sklearn.ensemble import AdaBoostClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import make_gaussian_quantiles# 几个关键参数有n_samples(生…

基于JSP+Servlet+Mysql的宠物管理系统(简单增删改查)

基于JSPServletMysql的宠物管理系统_简单增删改查 一、系统介绍二、功能展示1.主页2.增加3.修改4.查询5.删除 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目名称:基于JSPServletMysql的宠物管理系统(简单增删改查) 项目架构:B/S架构 开发语言…

FonePaw iOS Transfer for Mac: 让您的IOS设备数据无忧传输

在数字世界里,随着我们的生活与科技越来越紧密,数据传输成为了我们日常生活中的重要部分。尤其对于广大的苹果用户来说,如何方便、快速地传输数据成为了他们关注的焦点。今天,我要为大家介绍一款专门为Mac用户设计的IOS数据传输工…

60.0/PhotoShop制作简单的网页效果

目录 60.1 网页的页面元素 60.1.1 网页的概念 60.2网站设计的步骤 60.2.1草案 ​编辑 60.2.2 丰富内容 60.2.3 利用切片划分功能区域 60.3.0 Gif动画的制作 60.1 网页的页面元素 60.1.1 网页的概念 是指通过浏览器能访问到的 Web 页面,是一种超文本文件&am…

SpringBoot3 核心原理

1. 事件和监听器 1. 生命周期监听 场景:监听应用的生命周期 1. 监听器-SpringApplicationRunListener 自定义SpringApplicationRunListener来监听事件; 编写SpringApplicationRunListener 实现类在 META-INF/spring.factories 中配置 org.springfram…

同城配送小程序解决方案

前言 同城配送小程序解决方案。 一、用户用车 用户打开小程序后发货地址自动定位到用户当前位置,用户可通过地址后的>号在地图上选择新的发货地址和卸货地址,小程序会自动规划出行线路,计算距离和运费价格。 用户仅用简单操作后就可以…

冒泡排序(C语言)

void BubbleSort(int arr[], int len) {int i, j, temp;for (i 0; i < len; i){for (j len - 1; j > i; j--){if (arr[j] > arr[j 1]){temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}} } 优化&#xff1a; 设置标志位flag&#xff0c;如果发生了交换flag设置…

C++ 文件操作篇

C 文件操作篇 文章目录 C 文件操作篇1 简介1.1 继承关系1.2 流1.3 缓冲区输入输出流中的缓冲streambuf 2 文件操作步骤2.1 头文件2.2 创建流对象2.3 打开文件2.4 读取数据第一种&#xff1a;**按元素直接读**第二种&#xff1a;**使用getline按行读**第三种&#xff1a;**使用*…

软文发稿:雅虎媒体套餐投放内容有哪些

在当今数字时代&#xff0c;软文发稿成为企业推广的重要手段之一。雅虎媒体套餐作为软文发稿的一个独特平台&#xff0c;吸引了众多企业的关注。本文将深入探讨雅虎媒体套餐投放的内容&#xff0c;以揭示其在软文推广中的独特价值。 雅虎作为全球著名的互联网公司之一&#xf…

ubuntu多用户环境dockerbug,卸载重装docker流程

之前不小心误操作删除重装docker&#xff0c;结果删除没成功&#xff0c;更没法重装&#xff0c;每次apt install都会报一个docker错误&#xff0c;虽然不影响软件的常规安装&#xff5e;但是现在还是需要装一个完整docker&#xff0c;还是选择删除一下&#xff0c;重点是关闭服…

探索中国制造API接口:解锁无限商机,引领制造业数字化转型

一、概述 中国制造API接口是一种应用程序接口&#xff0c;专门为中国制造行业提供数据和服务。通过使用API接口&#xff0c;开发者可以轻松地获取中国制造的商品信息、供应商数据、生产能力等&#xff0c;从而为他们的应用程序或网站提供更加丰富的内容和功能。 二、API接口的…

k8s---kubernets

目录 一、Kurbernetes 1.2、K8S的特性&#xff1a; 1.3、docker和K8S&#xff1a; 1.4、K8S的作用&#xff1a; 1.5、K8S的特性&#xff1a; 二、K8S集群架构与组件&#xff1a; 三、K8S的核心组件&#xff1a; 一、master组件&#xff1a; 1、kube-apiserver&#xff1…

【网络安全 | MD5截断比较】PHP、Python脚本利用

前言 在解题中&#xff0c;当遇到类似 substr(md5(a),-6,6) 7788这样的MD5截断比较的题目时&#xff0c;只有求出a的值才能进行接下来的操作。 一个一个去猜是不可能的&#xff0c;通常使用脚本解决&#xff0c;文末给出实战案例。 PHP循环脚本 <?phpfor($i1;$i<9…

51和32单片机读取FSR薄膜压力传感器压力变化

文章目录 简介线性电压转换模块51单片机读取DO接线方式51代码实验效果 32单片机读取AO接线方式32代码实验效果 总结 简介 FSR薄膜压力传感器是可以将压力变化转换为电阻变化的一种传感器&#xff0c;单片机可以读取然后作为粗略测量压力&#xff08;仅提供压力变化&#xff0c;…

SpringBoot整合Spring-Security 认证篇(保姆级教程)

本文项目基于以下教程的代码版本&#xff1a; https://javaxbfs.blog.csdn.net/article/details/135195636 代码仓库: https://gitee.com/skyblue0678/springboot-demo 为了跟shiro区别开&#xff0c;新建了一个分支&#xff1a; 目录 &#x1f339;1、友善问候一下 Spring …

短视频矩阵系统:赋予用户创造与分享的力量

在如今快节奏的社交网络时代&#xff0c;人们对于信息获取和娱乐方式的需求也逐渐发生了变化。作为当下最受欢迎的短视频平台之一&#xff0c;抖音短视频矩阵系统正以其独特的魅力和吸引力&#xff0c;深深地打动着亿万用户。 抖音短视频矩阵系统是一种基于移动端的短视频分享…

3D换肤在服装行业的应用

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 通过采用高质量的 3D 模型&#xff0c;企业可以提供更加身临其境的体…