2010-12-03 59 views
2

例如,我有查询select id, name, age, address from staffs,而不是有一个Staff对象列表。我宁愿有一份地图清单,因为是否有可能从myBatis生成地图列表

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

} 

是否可能,以及如何做到这一点,如果可能?谢谢。

回答

7

是的,这是可能的。您可以在您的映射器xml文件中将resultType设置为Hashmap,并且它将返回一张映射列表。

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

,你会得到同样的方式:

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

您可以在User Guide阅读更多关于它。

3

在XML映射类型resultType"map""Hashmap",映射器接口您必须编写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(); 
} 
相关问题