Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zarządzać dużym zbiorem danych za pomocą Spring MySQL i RowCallbackHandler

Oto rozwiązanie Spring oparte na odpowiedź dostarczone przez firmę 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;
    }
}

Gdzieś w kodzie:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UPDATE z ORDER BY i LIMIT nie działa w MYSQL

  2. Grupowanie klauzul WHERE w Codeigniter

  3. Funkcje zdefiniowane przez użytkownika MySQL

  4. Java/Mysql..SQLException:Tabela musi zawierać co najmniej 1 kolumnę SQLState:42000 VendorError:1113

  5. Użyj relacyjnych baz danych MySQL w Debianie 6 (Squeeze)