数据库用的是SqlServer2008
图片为数据库执行存储过程返回的数据
Mybatis调用存储过程返回结果集
配置文件
<resultMap type="Integer" id="count"> <result column="RecordCount" jdbcType="INTEGER" javaType="Integer" /> </resultMap> <resultMap type="OrderForm" id="orders"> <result column="OrderId" property="id" jdbcType="VARCHAR" javaType="String"/> </resultMap> <select id="getOrders" statementType="CALLABLE" parameterType="Map" resultMap="count,orders" > {call Page_Up_Get_OrderState(#{id,mode=IN,jdbcType=VARCHAR})} </select>
需要注意的地方 statementType="CALLABLE" 不能少resultMap="count,orders" 这里返回多个结果集,如果有更多可以继续加
Dao层的接口
public List<List<?>> getOrders(Map<String, Object> map);
Service层调用
Map<String,Object> map=new HashMap<String, Object>(); map.put("id", "22333"); //取得返回的结果集 List<List<?>> results = orderDao.getOrders(map); //第一条结果集 总数量 System.out.println(((List<Integer>)results.get(0)).get(0)); //第二条订单列表 System.out.println((List<OrderForm>)results.get(1));
联系客服