1.继承StoredProcedure
org.springframework.jdbc.object.StoredProcedure是对应存储过程调用的操作对象,它通过其父类
org.springframework.jdbc.object.SqlCall获得相应的底层API支持(CallableStatementCreator), 然
后在此基础之上构建了调用存储过程的执行方法。
2、重写父类的execute()方法。将存储过程的参数封装成Map类型的传入该方法
.
3、写一个方法来封装存储过程的方法及把参数放到Map里面.
如:
Map paraMap = new HashMap();
paraMap.put(IN_PARAMETER_NAME, tableName);
paraMap.put(INOUT_PARAMETER_NAME, v);
注意:key值一定要与前面构造函数里面声明的参数一致。
4、execute()返回的map值要取到里面的value值,可以用前面构造函数声明时候用到的key值去取。
如:(String)resultMap.get(OUT_PARAMETER_NAME);就得到了存储过程的返回值。
示例如下:
public class xxxxProcedure extends StoredProcedure {
private static final String PROCEDURE_NAME = "xxxx";
protected xxxxProcedure() {
/* empty */
}
public xxxxProcedure(JdbcTemplate jdbcTemplate) {
super(jdbcTemplate, PRO_NAME);
declareParameter(new SqlParameter("xxxx", Types.VARCHAR));
declareParameter(new SqlParameter("xxxx", Types.VARCHAR));
declareParameter(new SqlParameter("xxxx", Types.NUMERIC));
}
public void execute(String xxxx,String xxxx,int xxxx) {
Map<String, Object> paramsIn = new HashMap<String, Object>();
paramsIn.put("xxxx", xxxx);
paramsIn.put("xxxx", xxxx);
paramsIn.put("xxxx", xxxx);
super.execute(paramsIn);
}
}