mybatis调用sqlserver存储过程返回结果集 dao层怎么处理
1个回答
展开全部
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));
配置文件
<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));
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询