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对象返回。