Spring 的jdbcTemplate 调用存储过程
JdbcTemplate 调用存储过程
- /**代码片段*/
- //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;
- }
- });
/**代码片段*/
//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对象返回。
持续学习、持续收获才能带来持续的满足和快乐!

浙公网安备 33010602011771号