SpringBoot中mybatis配置自動轉換駝峰標識沒有生效


mybatis提供了一個配置:

#開啟駝峰命名轉換
mybatis.configuration.map-underscore-to-camel-case=true

使用該配置可以讓mybatis自動將SQL中查出來的帶下划線的字段,轉換為駝峰標志,再去匹配類中的屬性。

即:

@Select("select phone_num,card_num from xxx where id=#{id}")

public User getUserInfo(String id);

 

 

查出來的結果,會被自動轉換成phoneNumcardNum再和結果類(這里就是User )中的屬性進行匹配。

更多和自動轉換駝峰標志相關的詳細源碼分析可以參考:傳送門

————————————————————分割線—————————————————

下面我們說說我這次碰到的奇怪問題:

在我的項目中,明明在application.properties中將這個屬性設為了true,結果運行到上文截圖57行代碼時始終為false,導致后邊無法找到匹配的屬性。

 

經過一番DEBUG分析,發現項目為了做多數據源,將生成

org.apache.ibatis.session.SqlSessionFactory

的配置抽出到使用@Configuration修飾的配置類中。

 

application.properties配置文件中關於駝峰轉換的配置內容沒有放進去。這些錯誤的代碼我就不在這貼了,直接上改善后的代碼:

 

經過調整之后變成了以下形式:

將application.properties  mybatis的congfig加載到類中,再注入到SqlSessionFactoryBean中,問題解決


免責聲明!

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



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