Mybatis使用Map代替Entity封装数据

8月 21, 2014 |

有时我们厌倦了写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: , ,

Comments are closed.