使用MyBatis-plus实体和数据库字段的映射
首先MyBatis-plus默认开启自动驼峰命名规则映射,其实就是驼峰转为下划线,例如
我们的实体字段为errorMsg,遵循小驼峰命名,MyBatis-plus生成sql语句时会默认转为error_msg
生成的sql如下:
INSERT INTO log_history ( id, code, error_msg, time ) VALUES ( ?, ?, ?, ? )
很明显MyBatis-plus默认给驼峰命名转成下划线了;
此时如果我们数据库字段是驼峰命名就会报错,那么如何解决这种问题呢?
方案一:
使用MyBatis-plus自带注解,在实体类字段名称上使用@TableField(value = “errorMsg”)这个注解,value里面对应的是数据库的具体字段名称
方案二:
关闭MyBatis-plus的驼峰命名规则映射,在yml配置文件中添加如下配置
mybatis-plus:
configuration:
map-underscore-to-camel-case: false # 禁止驼峰命名时自动转为下划线
这样的话MyBatis-plus就不会帮我们做自动映射了,但是这样的话会影响整个项目的,用的时候需要注意一下
还有一点需要注意!
数据库设计规范优先使用蛇形命名法,就是带下划线的
数据库表的字段名应该全部用小写字母命名,禁止出现大写,如果有大写需要改为小写并用下划线连接,
正确示例:error_massage
错误示例:errorMassage
所以,MyBatis-plus默认为驼峰转蛇形命名(也就是下划线)是正确的,只是并不是所有公司的数据库表的设计都是规范的,比如说我们现在就是驼峰。。。
并不是所有公司的数据库表的设计都是规范的,比如说我们现在就是驼峰。。。
以上是本人拙见,如果不对的地方,请大家多多指正!