小说网站制作,黄骅港一期煤码头潮汐表,专业网站建站企业,网页设计制作员关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结 测试一#xff1a;没有添加 自动转化的配置#xff0c;且domain中的属性名称和数据库的字段名称一致测试二#xff1a;没有添加自动转化配置i#xff0c;domain属性名userPassword和数据… 关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结 测试一没有添加 自动转化的配置且domain中的属性名称和数据库的字段名称一致测试二没有添加自动转化配置idomain属性名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中的属性名称和数据库的字段名称是一致的 通过测试
测试二没有添加自动转化配置idomain属性名userPassword和数据库字段名user_password不一致 此处设置的选项是没有选择 actual column表示生成的domain中属性名不和数据库字段名保持一致 通过测试
猜想mybatisplus自动转化驼峰是内部生成的而实体类的属性自动生成驼峰是mybatisX做的
测试三使用mybatisX生成代码前设置 生成的domain名称与数据库的表名一致并且domain的属性的名称userPassword也是和数据库user_password不一致 选择的是 same as tablename表示这个domain的类名和数据库一致并且domain的属性的名称也是和数据库不一致 测试通过
在mybatisplus中 自动转化默认值是true
测试四将配置自动转化设置为false其他和测试三一致 配置表示将数据库的字段的下划线的命名映射成驼峰的方式从默认值为true改为false不进行转化 测试不通过
报错信息Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘userPassword’ in ‘field list’
总结
mybatisplus 自动转化配置 mapUnderscoreToCamelCase 默认值是 true 它会将数据库字段名的格式在驼峰和下划线两种格式之间转化 false则关闭转化
我们在设计数据库表的时候字段名最标准的设计是下划线 使用插件生成的domain 第一页选择camel表示生成的domain类名为驼峰式
使用插件第二页生成的domain的选项就不用选择 actual column则生成的domain的属性是驼峰式的
此时我们的mybatisplus的自动转化配置默认值是true即表示会将数据库的下滑线的字段名写法映射成驼峰式的写法这就和我们的domain属性名相对应。
若我们的数据库字段名的写法是驼峰式不符合规范 那我们使用插件第二页生成的domain的选项就必须选择 actual column表示和数据库的字段名保持一致。 但是由于mybatisplus自动转化配置中默认值是true则会将数据库的字段名转化为下划线的格式最后导致与我们的domain的属性名不一致产生报错。 个人博客YLXOVO