1. 程式人生 > >mybatis 返回Map的key大小寫問題

mybatis 返回Map的key大小寫問題

在使用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程式碼 
  1. <!-- 返回HashMap結果 型別-->  
  2.     <!-- 如果想返回JavaBean,只需將resultType設定為JavaBean的別名或全限定名 -->  
  3.     <!-- TypeAliasRegistry類初始化時註冊了一些常用的別名,如果忘記了別名可以在這裡面檢視 -->
      
  4.     <select id="selectBlogRetHashMap" parameterType="int" resultType="map">  
  5.         SELECT id AS "id", title AS "title", content AS "content" FROM Blog WHERE id = #{id}  
  6.     </select>  

測試程式碼:

Java程式碼 
  1. /** 
  2.      * 測試返回HashMap 
  3.      */  
  4.     @SuppressWarnings("unchecked")  
  5.     @Test  
  6.     public
     void testSelectBlogRetHashMap() {  
  7.         SqlSession session = sqlSessionFactory.openSession();  
  8.         HashMap<String,Object> blog = (HashMap<String,Object>) session.selectOne(  
  9.                 "cn.enjoylife.BlogMapper.selectBlogRetHashMap"15);  
  10.         session.close();  
  11.         System.out.println(blog.get("title"));  
  12.     }