若依框架下通过map接收存储过程的多个结果值

因为项目需求,同事给的存储过程有两个结果集,需要我这边取出并封装,现将取值方法记录如下

效果:

请添加图片描述
1、结果集的大小代表返回多少个数据表记录
2、我是使用的SQL serve,所以只记录SQL serve下取存储过程结果集

数据表:

请添加图片描述结果集1
请添加图片描述结果集2

Mapper

//一个List存放一个结果集
List<List<Map<String,Object>>> queryGetProcedureBatch(@Param("productLine")String productLine,@Param("tagName")String tagName,@Param("time")String time,@Param("classType")String classType);

XML

	<!--定义两个map用来接收结果-->
   <resultMap id="Map1" type="java.util.HashMap">
    </resultMap>

    <resultMap id="Map2" type="java.util.HashMap">
    </resultMap>

    <!--查询结果集-->
    <select id="queryGetProcedureBatch" resultType="java.util.List" resultMap="Map1,Map2" parameterType="Map" statementType="CALLABLE">
        {CALL [SEFAMES].[dbo].[sp_GetProcedureBatch](#{productLine},#{tagName},#{time},#{classType})}
    </select>

ServiceImpl

    @DataSource(value = DataSourceType.SLAVE2)
    @Override
    public List<workTransition> queryGetProcedureBatch(String productLine, String tagName, String time, String classType) {
        System.out.println("-------------开始---------------");
        List<List<Map<String, Object>>> sptest = mapper.queryGetProcedureBatch(productLine,tagName,time,classType);
        System.out.println("大小:" + sptest.size());
        for (List<Map<String, Object>> objects : sptest) {
            System.out.println("结果:"+objects);
        }
        return null;
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值