您的位置:首页 > 其它

hibernate 调用存储过程 返回游标 实例

2014-04-24 11:28 567 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: