2

Spring JDBC APIをバッチモードで使用してストアドプロシージャを実行することはできますか?

Spring JdbcTemplateのメソッドbatchUpdateを使用しようとしましたが、機能しません。Spring3.0とOracleJDBCドライバーバージョン11.2.0.3を使用しています

   JdbcTemplate template = new JdbcTemplate(dataSource);

    template.batchUpdate("BEGIN SCHEMA.PERSON_UPDATE(I_N_PERSON_ID=> ?  ,I_S_NAME=> ?  ,J_N_TID=> ?);END;", 
                new BatchPreparedStatementSetter() {
                    public void setValues(PreparedStatement ps, int i) throws SQLException {
                        OracleCallableStatement cs = (OracleCallableStatement) ps;
                        cs.setString(1, persons.get(i).getName());
                        cs.setLong(2, persons.get(i).getPersonId());
                        cs.registerOutParameter(3, OracleTypes.NUMBER);
                    }

                    public int getBatchSize() {
                        return persons.size();
                    }} 
                );

ありがとう

4

1 に答える 1