Mybatis 當實體屬性與數據庫字段不一致時的幾種情況以及解決方式


1.要么改實體類屬性名

2.sql語句中加別名

3.mapper中加關聯映射 resultMap

 

============================

先讓mybatis開啟駝峰命名

在application.yml配置文件中添加Mybatis的配置

 

mybatis:
  type-aliases-package: com.mybatisplus.pojo  # 實體類包別名作用:可以用實體類名稱代替實體類的相對路徑
  configuration:
    map-underscore-to-camel-case: true # 駝峰命名

 

===========================

 

使用Mybatis的時候,Mybatis根據數據庫的字段找到對應實體類的屬性,通過set方法對屬性進行注入。
我們可以對實體類的set方法進行測試,測試如下:

執行結果如下:

 

說明:Mybatis會根據相同的屬性和字段名通過set方法進行注入

那如果實體類的屬性名和數據庫的字段名不相同呢?

我們改動實體類的屬性名,如下:

再次執行,結果如下:

 

可以發現,沒有通過set方法進行注入,而且user對象的userName的值為NULL,說明Mybatis默認下的確是通過相同的字段名和屬性名進行注入。
那如果我們不想使用和數據庫相同的字段名作為實體屬性名該怎么做呢?

方法一:通過修改sql語句

修改映射文件中的sql語句:

 

測試結果:

 

說明:可以發現Mybatis是根據查詢出來的字段名去找實體類相對的屬性去注入。

方法二:添加關聯映射

在映射文件中加入關聯映射,如下:

注意:

 

注意:

 

修改掉之前的sql語句

 

測試結果如下:

 

 

轉:  https://blog.csdn.net/cckevincyh/article/details/71258157

https://www.cnblogs.com/ubiquitousShare/p/12505815.html

 


免責聲明!

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



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