mybatis 返回Map的key大小寫問題
阿新 • • 發佈:2019-01-28
在使用mybatis的時候,經常會用到resultType=“map” 返回map型別的資料。發現預設返回的都是小寫的,無論你在sqlmap.xml中如何定義大小寫,返回到前臺都會被無情的改成小寫,具體mybatis是如何考慮的,沒有研究過。但確實發現有這樣的問題(或許看了原始碼並理解了mybatis開發者的用意之後會發現,這並不是問題)。
但是今天遇到一個需求,返回到前臺後的所有資料的屬性必須都是駝峰式的格式,明顯預設的mybatis的map返回形式是不滿足要求,所以在網上查了一下(其實早該網查一下的,遇到問題就要有要去及時解決的想法,不然個人能力也很難提升,這樣遇到問題及時解決,也減少了返工的可能性,所以大家共勉),沒想到這個問題這麼簡單,很快就找到了答案.答案是在這個地址發現的,大家可以參考下:http://blog.csdn.net/werewr342352321df/article/details/11892755;文章的主旨大意就是將需要返回的列起一個別名,並且將別名包含在引號內 ;親測有效。下面是上述連結的內容:
mybatis resultType="map"
mybatis通常情況都是用javabean作為resultType的物件,但是有時也可以使用map。
並且可以把預設大寫key改為小寫。
mybatis返回HashMap結果型別與對映 Xhtml程式碼- <!-- 返回HashMap結果 型別-->
- <!-- 如果想返回JavaBean,只需將resultType設定為JavaBean的別名或全限定名 -->
- <!-- TypeAliasRegistry類初始化時註冊了一些常用的別名,如果忘記了別名可以在這裡面檢視 -->
- <select id="selectBlogRetHashMap" parameterType="int" resultType="map">
- SELECT id AS "id", title AS "title", content AS "content" FROM Blog WHERE id = #{id}
- </select>
測試程式碼:
Java程式碼- /**
- * 測試返回HashMap
- */
- @SuppressWarnings("unchecked")
- @Test
- public
- SqlSession session = sqlSessionFactory.openSession();
- HashMap<String,Object> blog = (HashMap<String,Object>) session.selectOne(
- "cn.enjoylife.BlogMapper.selectBlogRetHashMap", 15);
- session.close();
- System.out.println(blog.get("title"));
- }