hibernate 呼叫儲存過程 返回遊標 例項
阿新 • • 發佈:2019-02-18
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Connection con = this.getSession().connection(); CallableStatement sp; try { sp = con.prepareCall("{call Fsp_Plan_CheckPrj(?,?,?)}"); sp.setString(1, ObjectUtils.toString(params.get("grantNo"))); sp.setLong(2, NumberUtils.toLong(ObjectUtils.toString(params.get("offOrgCode")))); sp.registerOutParameter(3, OracleTypes.CURSOR); sp.execute(); // 執行儲存過程 ResultSet rs = (ResultSet) sp.getObject(3); // 獲取返回的物件,再將物件轉為記錄集 3代表哪個引數 while (rs.next()) { Map<String, Object> resultMap = new HashMap<String, Object>(); resultMap.put("plan_code", ObjectUtils.toString(rs.getObject(1))); resultMap.put("plan_dept", ObjectUtils.toString(rs.getObject(2))); resultMap.put("plan_amount", IrisStringUtils.FormatMoney(ObjectUtils.toString(rs.getObject(3)))); resultMap.put("exec_amount", IrisStringUtils.FormatMoney(ObjectUtils.toString(rs.getObject(4)))); resultMap.put("plan_name", ObjectUtils.toString(rs.getObject(5))); resultMap.put("dept_name", ObjectUtils.toString(rs.getObject(6))); list.add(resultMap); } } catch (SQLException e) { e.printStackTrace(); } return list;