1,dao层代码
Integer currentlq_fsx = getSqlSession().selectOne("lqMapper.maxscore");
Map<String,Object> map = new HashMap<String,Object>();
map.put("fsxxx", fsxxx);
map.put("currentlq_fsx", currentlq_fsx);
getSqlSession().selectList("lqMapper.lq", map);//调用存储过程
//调用完后,游标的值存放在map中
List<Map<String,Object>> list1 = (List<Map<String, Object>>) map.get("v_cursor1");
List<Map<String,Object>> list2 = (List<Map<String, Object>>) map.get("v_cursor2");
result.put("list1", list1);
result.put("list2", list2);
2,mapper.xml代码
<select id="lq" statementType="CALLABLE" parameterType="Map">
<!-- statementType="CALLABLE" 意思是表明是代用存储过程-->
<![CDATA[
{call lq (#{fsxxx,mode=IN,jdbcType=INTEGER},
#{currentlq_fsx,mode=IN,jdbcType=INTEGER},
#{v_cursor1, mode=OUT, jdbcType=CURSOR, resultMap=cursorMap},
#{v_cursor2, mode=OUT, jdbcType=CURSOR, resultMap=cursorMap})}
]]>
<!-- 传入的参数mode值为IN,输出的参数mode值为OUT-->
</select>