sql >> Databáze >  >> RDS >> Mysql

Jak spravovat velkou datovou sadu pomocí Spring MySQL a RowCallbackHandler

Zde je řešení Spring založené na odpověď poskytuje BalusC.

class StreamingStatementCreator implements PreparedStatementCreator {
    private final String sql;

    public StreamingStatementCreator(String sql) {
        this.sql = sql;
    }

    @Override
    public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
        final PreparedStatement statement = connection.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
        statement.setFetchSize(Integer.MIN_VALUE);
        return statement;
    }
}

Někde ve vašem kódu:

DataSource dataSource = ...;
RowCallbackHandler rowHandler = ...;
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.query(new StreamingStatementCreator("SELECT * FROM huge_table"), rowHandler);


  1. MySQL a PHP:UTF-8 se znaky azbuky

  2. GROUP BY v klauzuli UPDATE FROM

  3. Počítání počtu výskytů znaku v Oracle SQL

  4. Zajímá vás nejnovější funkce Microsoft Access?