1. 程式人生 > 其它 >Mybatis結果集對映問題

Mybatis結果集對映問題

之前的資料庫圖簡單都是純小寫格式,這一次做專案為了顯得正規一些,模擬實際的情況,採用了駝峰命名的規則,這時候就遇到了結果匹配的問題。

之前只要

<select id="select" parameterType="map" resultType="xxxx">

就可以自動匹配,這一次我也以為可以,但是實際測試的時候發現能查到資料,可是資料無法傳輸出來,我以為是sql語句出現了問題,資料庫不認識xx_xx這種寫法的原因,但是通過mybatis打印出來的sql日誌又發現沒有問題,同時列印結果集的size也是大於0的,說明能正常查到資料,那麼問題就只能出現在封裝的過程當中,我就想到了應該是字符集映射出來問題,就改寫resultMap,第一次使用該方法,對應完之後執行直接報錯。

檢視控制檯輸出

Error resolving JdbcType. Cause:java.lang.IllegalArgumentException: No enum

這是因為Mybatis不認識int型別的jdbctype資料,不僅要大寫,而且得是Integer

附一張mybatis官網書寫的支援的jdbctype型別資料

ps:其實也還有一種複雜的寫法,此前我也在其他短小的專案中使用過

select doc.id,
        doc.title,
        doc.text,
        doc.departid,
        doc.authorid,
        depart.name as departName,
        emp.name as authorName,
        doc.statenum,
        doc.advice,
        empl.name as approveName,
        empl.id as approveId

這種寫法複用率很低,當你有多個查詢同一個物件的語句時還是使用結果集對映更為方便。