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物件的對映。