Java代码 复制代码 收藏代码

  1. List<Map<String, Object>> entryList = jdbcTemplate.execute(new CallableStatementCreator() {
  2. public CallableStatement createCallableStatement(Connection con) throws SQLException {
  3. String storedProc = "{ call JSJD_DXJG(?,?,?,?,?) }";// 调用的sql
  4. CallableStatement cs = con.prepareCall(storedProc);
  5. cs.setString(1, year);// 设置输入参数的值
  6. cs.setString(2, month);
  7. cs.setString(3, projectrate);
  8. cs.setString(4, v_type);
  9. cs.registerOutParameter(5, OracleTypes.CURSOR);// 注册输出参数的类型
  10. return cs;
  11. }
  12. }, new CallableStatementCallback() {
  13. public Object doInCallableStatement(CallableStatement cs) throws SQLException,DataAccessException {
  14. List resultsMap = new ArrayList();
  15. cs.execute();
  16. ResultSet rs = (ResultSet) cs.getObject(5);// 获取游标一行的值
  17. while (rs.next()) {// 转换每行的返回值到Map中
  18. Map rowMap = new HashMap();
  19. rowMap.put("org_code", rs.getString("org_code"));
  20. rowMap.put("org_name", rs.getString("org_name"));
  21. rowMap.put("num", rs.getString("num"));
  22. rowMap.put("finsh", rs.getString("finsh"));
  23. rowMap.put("bfb", rs.getString("bfb"));
  24. rowMap.put("project_money", rs.getString("project_money"));
  25. resultsMap.add(rowMap);
  26. }
  27. rs.close();
  28. return resultsMap;
  29. }
  30. });