Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara mengelola kumpulan data besar menggunakan Spring MySQL dan RowCallbackHandler

Inilah solusi Spring berdasarkan jawaban disediakan oleh 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;
    }
}

Di suatu tempat dalam kode Anda:

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. Pernyataan SQL - PILIH kebalikan dari kueri ini

  2. Levenshtein:MySQL + PHP

  3. Prosedur tersimpan MySQL menggunakannya atau tidak menggunakannya

  4. Memperbarui skema tabel tanpa memengaruhi data di Laravel

  5. Apakah ada cara dalam SQL (MySQL) untuk melakukan round robin ORDER BY pada bidang tertentu?