1. 程式人生 > >Mybatis 如何返回Map集合

Mybatis 如何返回Map集合

      相信很多使用Mybatis的人都經常使用資料庫查詢批量資料,然後通過ORM對映到記憶體當中,一般情況下,Mybatis通過List形式來返回資料,但是有些特殊場景,大家希望返回來的集合通過主鍵的方式來對映到一個特定HashMap當中,通過研究,我發現通過如下當時可以達到對映效益:

DAO層物件:

 package ems.rm.margindataproxy;
import java.util.HashMap;
import org.apache.ibatis.annotations.MapKey;

import ems.rm.margindataproxy.MarginData;


public interface DataMapper {
@MapKey("Stock_Code")
HashMap<String,MarginData> getAllMarginData();
}

Mapper.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="ems.rm.margindataproxy.DataMapper" >
<resultMap  id="marginDataList" type="ems.rm.margindataproxy.MarginData">
         <result column="Stock_Code" property="Stock_Code" jdbcType="VARCHAR"/>
         <result column="Margin_Ratio" property="Margin_Ratio" jdbcType="FLOAT"/>
         <!-->result column="Margin_Level" property="Margin_Level" jdbcType="FLOAT"/ -->
    </resultMap >
    
    <select id="getAllMarginData" resultMap="marginDataList">
select distinct a.stock_code, a.margin_ratio  from  hs_secuhk.marginratio a inner join  hs_secuhk.nstkcode b on(a.STOCK_CODE =b.STOCK_CODE and b.Margin_Flag='Y' and a.EXCHANGE_TYPE ='K')
    </select>
</mapper>

其實註解@MapKey("主鍵")即可以輕鬆的完成Map物件的對映。