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));
    }

三、用Vo类返回

新建一个VO,组装所有需要的字段,实现setter,getter,toString方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tan.]der

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值