用map来接游标的集合笔记
o_mycur返回的是一个带游标的集合,而且字段是可变的集合,所以用这种方法来接返回的结果集合。
<resultMap id="myMap" type="java.util.Map">
</resultMap>
<select id="projectCostBudge" statementType="CALLABLE" parameterType="java.util.Map">
{call P_XM_YSCB_RPT(
#{p_scno,mode=IN,jdbcType=VARCHAR},
#{p_khmc,mode=IN,jdbcType=VARCHAR},
#{p_xmflids,mode=IN,jdbcType=VARCHAR},
#{o_mycur, jdbcType=CURSOR, mode=OUT, javaType=ResultSet, resultMap=myMap}
)}
</select>
调用用map去调用,然后执行了oracle数据库的存储过程后就直接把返回的结果集合存在当前map的集合中
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("p_scno",StringUtils.isEmpty(projectCostBudgetVo.getP_scno()) ? "" : projectCostBudgetVo.getP_scno());
paramMap.put("p_khmc",StringUtils.isEmpty(projectCostBudgetVo.getP_khmc()) ? "" : projectCostBudgetVo.getP_khmc());
paramMap.put("p_xmflids",StringUtils.isEmpty(projectCostBudgetVo.getP_xmflids()) ? "": projectCostBudgetVo.getP_xmflids());
projectCostMapper.projectCostBudge(paramMap);
List<JSONObject> o_mycur = (List<JSONObject>) paramMap.get("o_mycur");
oracle存储过程的实例
CREATE OR REPLACE procedure P_XM_YSCB_RPT
(
p_scno nvarchar2,
p_khmc nvarchar2,
p_xmflids nvarchar2,
o_mycur out sys_refcursor --游标返回数据结果集
)