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);
}

 

運行報錯: 

1.jpg

 

說找不到t_sys_user表,所以默認映射是以下划線分隔的名字;

 

我們可以通過配置:table-underline: false  搞成false即可;

mybatis-plus:
  global-config:
    db-config:
      id-type: 0
      table-prefix: t_
      table-underline: false

 

這樣運行下試下,這個問題解決了,但是又報了一個新錯誤:

這次是user_name找不到了,還是默認駝峰式的以下划線分隔;

2.jpg

 

我們可以通過

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」創作共享協議,轉載請在文章明顯位置注明作者及出處。

------------------------------------------------------------------------------------------------------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM