数据库用的是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));
,不是每个人都一定快乐,不是每种痛都一定要述说。