因为项目需求,同事给的存储过程有两个结果集,需要我这边取出并封装,现将取值方法记录如下
效果:
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;
}