一、返回Map類型
1、如果查詢的結果是一條,我們可以把查詢的數據以{表字段名, 對應的值}方式存入到Map中。
mapper 接口:
// 根據 id 查詢信息,並把結果信息封裝成 Map
Map<String,Object> getUserInfo(@Param("user_id") Integer user_id);
SQL 映射文件:
<!-- 這里為resultType="map" -->
<select id="getUserInfo" resultType="map">
select a.*,
b.role_name
from (
select * from t_user where user_id= #{user_id}
) a
inner join t_role b
on a.role_id = b.role_id
</select>
單元測試
@Test
public void testLogin() {
Map<String,Object> map =userDao.getUserInfo(10086);
map.remove("user_password");
System.out.println(map);
}
查詢結果
二、多結果集
mapper 接口:
/**
* 調用存儲過程獲取多個結果集
* @return
*/
List<List<?>> getTests();
SQL 映射文件:
<!--調用存儲過程獲取多個結果集
"神bug 不加前面的兩個橫杠報錯"
-->
<select id="getTests" statementType="CALLABLE" resultMap="paging_list,paging_additional" >
--
CALL paging_list ( '*','t_user',1 , 3 , 'faculty_id in (2) and role_id in (3)' , '',@_totalcount,@_pagecount)
</select>
單元測試
/**
* 測試調用存儲過程獲取多個結果集
*/
@Test
public void testGetTests(){
List<List<?>> aa =userDao.getTests();
System.out.println(aa.get(0));
System.out.println(aa.get(1));
}
查詢結果