2010-12-03 24 views
2

par exemple, j'ai requêtes select id, name, age, address from staffs, au lieu d'avoir une liste d'objet personnel. Je préférerais avoir une liste de cartes, commeEst-ce possible de générer une liste des cartes de mybatis

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

} 

est-ce possible, et comment le faire, si possible? Merci.

Répondre

7

Oui, il est possible. Vous pouvez définir resultType comme Hashmap dans votre fichier xml mapper, et il retournera une liste de cartes.

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

Et vous obtenez la même façon:

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

Vous pouvez en lire davantage dans le User Guide.

3

Dans mappeur type xml resultType comme "map" ou "Hashmap", interface mappeur vous devez écrire le type reutrn comme "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(); 
}