mybatis-plus對於駝峰式命名的處理;
對於駝峰式命名的實體名和字段名,mybatis-plus默認處理是通過下划線分隔;
比如SysUser實體名默認映射 sys_user表;
比如UserName字段名默認映射是 user_name表;
我們來看一個實例:
系統用戶表,以及三個字段;
CREATE TABLE `t_sysuser` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(200) DEFAULT NULL, `passWord` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
系統用戶實體:
@Data public class SysUser { private Integer id; private String userName; private String passWord; }
繼承BaseMapper接口
public interface SysUserMapper extends BaseMapper<SysUser> { }
測試插入
@Test public void insert(){ SysUser sysUser=new SysUser(); sysUser.setUserName("xxx"); sysUser.setPassWord("123"); sysUserMapper.insert(sysUser); }
運行報錯:
說找不到t_sys_user表,所以默認映射是以下划線分隔的名字;
我們可以通過配置:table-underline: false 搞成false即可;
mybatis-plus: global-config: db-config: id-type: 0 table-prefix: t_ table-underline: false
這樣運行下試下,這個問題解決了,但是又報了一個新錯誤:
這次是user_name找不到了,還是默認駝峰式的以下划線分隔;
我們可以通過
configuration.map-underscore-to-camel-case: false 配置,去掉默認實現;
mybatis-plus: global-config: db-config: id-type: 0 table-prefix: t_ table-underline: false configuration: map-underscore-to-camel-case: false
這樣就成功執行了;
最佳實踐和建議:為了避免在對應實體類時產生的性能損耗,我們還是用默認配置,這樣字段不用做映射就能直接和實體類對應。
------------------------------------------------------------------------------------------------------------------------------
作者: java1234_小鋒
出處: https://www.cnblogs.com/java688/p/13507827.html
版權:本站使用「CC BY 4.0」創作共享協議,轉載請在文章明顯位置注明作者及出處。
------------------------------------------------------------------------------------------------------------------------------