Spring 的jdbcTemplate 调用存储过程

JdbcTemplate 调用存储过程

 

Java代码 复制代码 收藏代码
  1. /**代码片段*/  
  2. //5个输入参数,3个输出参数   
  3. String sql = "{call GENERATEORDERS_P(?,?,?,?,?,?,?,?)}";   
  4.                                
  5. final String company_id = result.get("F_COMPANY_ID").toString();           // 公司ID   
  6. final String competition_id = result.get("F_COMPETITION_ID").toString();   // 比赛ID   
  7. final String current_phase = result.get("F_CURRENT_PHASE").toString();     // 当前周期   
  8. final String market_scope_id = result.get("F_MARKET_SCOPE_ID").toString(); // 市场ID   
  9. final String market_loca_id = result.get("F_MARKET_LOCA_ID").toString();   // 产品类型ID   
  10.   
  11. Map mapR = (Map) getJdbcTemplate().execute(sql,new CallableStatementCallback() {   
  12.             public Object doInCallableStatement(CallableStatement cs)throws SQLException,DataAccessException {   
  13.                 cs.setString(1, current_phase);    // 输入参数   
  14.                 cs.setString(2, competition_id);   // 输入参数   
  15.                 cs.setString(3, market_scope_id);  // 输入参数   
  16.                 cs.setString(4, market_loca_id);   // 输入参数   
  17.                 cs.setString(5, company_id);       // 输入参数   
  18.                 cs.registerOutParameter(6,Types.VARCHAR);//输出参数   
  19.                 cs.registerOutParameter(7,Types.VARCHAR);//输出参数   
  20.                 cs.registerOutParameter(8,Types.VARCHAR);//输出参数   
  21.                 cs.execute();   
  22.                 Map map = new HashMap();   
  23.                 map.put("RESULT", cs.getString(6));       // 订单数量   
  24.                 map.put("F_PRICE", cs.getString(7));      // 订单价格   
  25.                 map.put("F_CPUT_MOD_ID", cs.getString(8));// 产品型号ID   
  26.                 return map;   
  27.             }   
  28.         });  
/**代码片段*/
//5个输入参数,3个输出参数
String sql = "{call GENERATEORDERS_P(?,?,?,?,?,?,?,?)}";
							
final String company_id = result.get("F_COMPANY_ID").toString();           // 公司ID
final String competition_id = result.get("F_COMPETITION_ID").toString();   // 比赛ID
final String current_phase = result.get("F_CURRENT_PHASE").toString();     // 当前周期
final String market_scope_id = result.get("F_MARKET_SCOPE_ID").toString(); // 市场ID
final String market_loca_id = result.get("F_MARKET_LOCA_ID").toString();   // 产品类型ID

Map mapR = (Map) getJdbcTemplate().execute(sql,new CallableStatementCallback() {
			public Object doInCallableStatement(CallableStatement cs)throws SQLException,DataAccessException {
				cs.setString(1, current_phase);    // 输入参数
				cs.setString(2, competition_id);   // 输入参数
				cs.setString(3, market_scope_id);  // 输入参数
				cs.setString(4, market_loca_id);   // 输入参数
				cs.setString(5, company_id);       // 输入参数
				cs.registerOutParameter(6,Types.VARCHAR);//输出参数
				cs.registerOutParameter(7,Types.VARCHAR);//输出参数
				cs.registerOutParameter(8,Types.VARCHAR);//输出参数
				cs.execute();
				Map map = new HashMap();
				map.put("RESULT", cs.getString(6));       // 订单数量
				map.put("F_PRICE", cs.getString(7));      // 订单价格
				map.put("F_CPUT_MOD_ID", cs.getString(8));// 产品型号ID
				return map;
			}
		});

 

 

 execute方法返回的是一个Object对象,在这里我封装了一个Map对象返回。

posted on 2011-08-11 11:17  babyblue  阅读(407)  评论(0)    收藏  举报