是否可以从myBatis生成地图列表

时间:2010-12-03 09:45:55

标签: mybatis

例如,我有查询select id, name, age, address from staffs,而不是拥有Staff对象列表。我希望有一个地图列表,如

list{
  map{
    ("id", 123),
    ("name","jackie"),
    ("address", "canada"),
    ("age",26)
  }
  map{
    ("id", 126),
    ("name","james"),
    ("address", "canada"),
    ("age",27)
  }

}

是可能的,如果可能的话怎么做?感谢。

2 个答案:

答案 0 :(得分:8)

是的,这是可能的。您可以在mapper xml文件中将resultType设置为Hashmap,它将返回一个地图列表。

<select id="selectFromStaffs" resultType="Hashmap">
    select id, name, age, address from staffs
</select>

你得到同样的方式:

...
List listOfMaps = sqlSession.selectList("selectFromStaffs");
...

您可以在User Guide中了解更多相关信息。

答案 1 :(得分:4)

在mapper xml类型resultType"map""Hashmap",mapper接口必须将reutrn类型写为"List"

StaffMapper.xml

<select id="getStaffList" resultType="map">
    select id, name, age, address from staffs
</select>

StaffMapper.java

import java.util.List;
import java.util.Map;
public interface StaffMapper {
    List<Map<String, Object>> getStaffList();//List getStaffList();
}