mybatis返回多结果集

一、返回Map类型

  • 如果查询的结果是一条,我们可以把查询的数据以{表字段名, 对应的值}方式存入到Map中。
  • 注解@MapKey:
  • Map的key:一般是存储每条记录的主键。也可以用其他值表示,主要取决于Dao层@MapKey注解后面的字段(如@MapKey(“user_id”))
  • Map的value:也是一个Map,表示查询出这条记录的每个字段的字段名称和字段值。

mapper 接口:

	@MapKey("user_id")
	public Map<String,Object> selectAccountLookup(String value);

SQL 映射文件:

<!-- 这里为resultType="map" -->
	<select id="selectAccountLookup" resultType="map">
		select user_id,nick_name,avatar from sys_user
		where user_id = #{value} 
		or email = #{value} 
		or phonenumber = #{value};
	</select>

二、多结果集

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));
    }
上一篇:模拟[不配编号]考试总结


下一篇:Alkene-PEG2000-Alkene,乙烯基PEG2000乙烯基,烯丙基PEG2000烯丙基