1. 程式人生 > >mybatis無法給帶有下劃線屬性賦值問題

mybatis無法給帶有下劃線屬性賦值問題

前言

今天在做專案的時候遇到了一個問題,真的是有點神奇的問題。在進行資料查詢的時候,實體類中帶有下劃線的欄位查出來的結果都為null,由此可見就是mybatis的事情。

敘述

下面是我的資料庫的表結構
在這裡插入圖片描述
由逆向生成工具生成的map檔案如下
在這裡插入圖片描述

在專案執行的時候,凡是有下劃線的欄位都沒有查到值,無奈之下只能找度娘了。關於mybatis無法給帶有下劃線屬性賦值的問題一共有兩種解決方法,具體的解決方法如下:

解決方案
1、在mybatis-config.xml檔案裡配置
<configuration>
    <!-- 全域性配置 -->
    <settings>
        <!--允許 JDBC 支援自動生成主鍵-->
        <setting name="useGeneratedKeys" value="false"/>     
 
        <!--是否開啟自動駝峰命名規則(camel case)對映,即從經典資料庫列名 A_COLUMN 到經典Java 屬性名 aColumn 的類似對映。 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

2、把SQL語句中的 resultType 改成了resultMap=”BaseResultMap” 結果就會正常顯示出來了。

MyBatis的每一個查詢對映的返回型別都是ResultMap,只是當我們提供的返回型別屬性是resultType的時候,MyBatis對自動的給我們把對應的值賦給resultType所指定物件的屬性,而當我們提供的返回型別是resultMap的時候,將資料庫中列資料複製到物件的相應屬性上,可以用於複製查詢,兩者不能同時用。
如果返回的是resultMap型別,則返回的型別會自動去找該類所對應的map檔案,如果是resultType,則資料會自動自己定義的實體。

感謝您的閱讀~~