Mybatis select返回值為map時,選取表字段的兩列作為key,value


轉自:http://blog.csdn.net/sou_liu/article/details/47755635

最近需要用到Mybatis中查詢結果集為Map的功能,查了好多資料,最終搞定。其實只需要重寫ResultHandler接口,,然后用SqlSession 的select方法,將xml里面的映射文件的返回值配置成 HashMap 就可以了。具體過程如下

 
1、先看看xml文件怎么配置
<resultMap id="getAllSetDaysResult"   type="HashMap">
    <result property="key" column="SP_FPARAMEKEY" />
    <result property="value" column="SP_FPARAMEVALUE" />
</resultMap>
 
2、sql
<select id="getAllSetDays" resultMap="getAllSetDaysResult">
SELECT SP.FPARAMEKEY SP_FPARAMEKEY, SP.FPARAMEVALUE SP_FPARAMEVALUE
  FROM T_SERVER_PARAMETER SP
 WHERE SP.FPARAMEKEY IN ('XXX')
</select> 
 
3、重寫org.apache.ibatis.session 中ResultHandler接口:
public class FblMapResultHandler implements ResultHandler {
    @SuppressWarnings("rawtypes")
    private final Map mappedResults = new HashMap();
 
    @SuppressWarnings("unchecked")
    @Override
    public void handleResult(ResultContext context) {
        @SuppressWarnings("rawtypes")
        Map map = (Map) context.getResultObject();
        mappedResults.put(map.get("key"), map.get("value"));  // xml 配置里面的property的值,對應的列
    }
    public Map getMappedResults() { 
        return mappedResults; 
    } 
}
 

  

4、調用select方法:
FblMapResultHandler fbl = new FblMapResultHandler();
getSqlSession().select(NAMESPACE +"getAllSetDays",fbl);
@SuppressWarnings("rawtypes")
Map map =fbl.getMappedResults();
return map;

  


免責聲明!

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



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