有时我们厌倦了写entity来封装从数据库查询出来的记录,比如一个关联查询,我们不想为这个查询写一个entity ,因为这个查询可能只使用一次, 这时我们可以使用Map来封装一行的数据,而不是新建一个entity。
我们可以这样写:
<select id=”select” resultType=”java.util.HashMap”>
Select t.xID, t.xName from student t
</select>
这样Mybatis 返回给我们的结果的数据类型为List<Map<String, Object>>,
迭代如下:
List<Map<String, Object>> rs = ……. // from mybatis
For(Map<String, Object> m: rs) {
Integer xID = (Integer)m.get(“xID”);
String xName = (String)m.get(“xName”);
System.out.println(“id:” + xID + “?? xName:” + xName);
}
当result Map 关联的是一个Map的list时,我们需要同时指定collection 的ofType 和javaType属性, 示例如下
<resultMap id=””>
…..
<collection property=”” ofType=”java.util.HashMap”, javaType=”java.util.ArrayList”>
<id? property=”” column=””/>
<result property=”” column=””/>
</collection>
</resultMap>
Posted in: Mybatis practise | Tags: Map, mybatis, resultTpye
Comments are closed.