1. JdbcTemplate 更新数据
- public boolean switchStartOrderMeeting(String argument, String flag)
- throws DataAccessException {
- boolean result = false;
- String sql =
- sql = "update COMPETITION_BASE_T t set T.F_COMPETE_ORDER_STATE = '0'"+
- " where T.F_COMPETITION_ID = ?";
- int i = 0;
- //返回所影响的行数
- i = this.getJdbcTemplate().update(sql, new Object[] { argument });
- if (i > 0) {
- result = true;
- }
- return result;
- }
这个方法很简单,update方法只要传入sql脚本和脚本参数(Object数组类型)。
2. 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;
- }
- });
execute方法返回的是一个Object对象,在这里我封装了一个Map对象返回。