JdbcTemplate 調用預存程序
Java代碼
- /**程式碼片段*/
- //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(); // 公司IDfinal String competition_id = result.get("F_COMPETITION_ID").toString(); // 比賽IDfinal String current_phase = result.get("F_CURRENT_PHASE").toString(); // 當前周期final String market_scope_id = result.get("F_MARKET_SCOPE_ID").toString(); // 市場IDfinal String market_loca_id = result.get("F_MARKET_LOCA_ID").toString(); // 產品類型IDMap 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));// 產品型號IDreturn map;}});
execute方法返回的是一個Object對象,在這裡我封裝了一個Map對象返回。