mybatis 返回Map類型key默認為大寫問題
返回Map類型key默認為大寫
在工作中發現的問題
默認情況下,當resultType=“java.util.Map”時,返回的key值都是大寫的!!
<select id="getSystemDataOutZxwtList" resultType="java.util.Map"> </select>
修改方法
<select id="getStudentList" resultType="java.util.Map"> select t.name as "sName",t.sex as "sSex" from student </select>
關於mybatis返回map的坑
mybatis返回類型為java.util.Map的時候,會有問題,就是如果該字段為null或者“”的話,封裝返回的Map中會自動去除該字段,因此經常會在Map中取不到值,關於這個問題網上有很多解決辦法,mybatis高版本通過配置settings解決,低版本的話暫時無法解決
Map中key是分大小寫的
mybatis返回的Map封裝,Key默認全是大寫,因此JAVA取Map值,key都要大寫
其實低版本可以通過Java定義與sql相同的字段名稱,在JAVA中判斷是否包含鍵值對,如果沒有,那麼手動添加該鍵的空值(空鍵值對),相當於自己又封裝瞭一遍數據,其實比較麻煩,如果更改SQL,那麼JAVA也要相應更改
其他暫無好的辦法
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 關於mybatis resulttype 返回值異常的問題
- 在MyBatis中實現一對多查詢和多對一查詢的方式詳解(各兩種方式)
- SQL Server數據庫連接查詢和子查詢實戰案例
- MyBatis在DAO層定義接口返回類型泛型無效的解決
- mybatis動態SQL if的test寫法及規則詳解