Mybatis-Plus駝峰式命名規則配置
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」創作共享協議,轉載請在文章明顯位置註明作者及出處。
------------------------------------------------------------------------------------------------------------------------------