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

效果:

请添加图片描述
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;
    }
Logo

快速构建 Web 应用程序

更多推荐