Обновите ResultSet с помощью Spring JDBCTemplate - PullRequest
0 голосов
/ 24 июня 2019

С Spring boot 1.5.8.RELEASE, с использованием org.springframework.jdbc.core.JdbcTemplate Я хочу запросить SELECT id, name FROM user, затем обновить, повторяя все результаты.

С классическим кодом JDBC я использовал:

PreparedStatement stmt = conn.prepareStatement(sql,
      ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery();
...
rs.updateString("name", "toto");
...

Но как это сделать с классом Spring JDBCTemplate (методом запроса)?

1 Ответ

0 голосов
/ 24 июня 2019

Благодаря @JB Низет:

jdbcTemplate.query(new PreparedStatementCreator() {
            @Override
            public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
                return con.prepareStatement("SELECT id, slug FROM user", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
            }
        }, new ResultSetExtractor<Void>() {
            @Override
            public Void extractData(ResultSet rs) throws SQLException, DataAccessException {

                while (rs.next()) {

                        rs.updateString("slug", artistSlug);

                }

                return null;
            }
        });
...