Spring JdbcTemplate 调用存储过程

1 调用存储过程的Java方法很多,笔者只验证通过了Spring JdbcTemplate的调用方式。

首先,service中需要导入spring core包下的JdbcTemplate类,如果是通过xml注入的话需要给jdbcTemplate配置数据源:

如 


    
        
            
        
    

2 然后可以调用 JdbcTemplate 的 execute方法执行存储过程,简单的用例如下:

jdbcTemplate.execute(
     new CallableStatementCreator() {
        public CallableStatement createCallableStatement(Connection con) throws SQLException {
           String storedProc = "{call testpro(?,?)}";// 调用的sql
           CallableStatement cs = con.prepareCall(storedProc);
           cs.setString(1, "p1");// 设置输入参数的值
           cs.registerOutParameter(2, OracleTypes.VARCHAR);// 注册输出参数的类型
           return cs;
        }
     }, new CallableStatementCallback() {
         public Object doInCallableStatement(CallableStatement cs)throws SQLException, DataAccessException {
           cs.execute();
           return cs.getString(2);// 获取输出参数的值
     }
  });

本次测试,调用国产数据库 人大金仓的存储过程可行。

你可能感兴趣的:(java技术)