Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách quản lý một tập dữ liệu lớn bằng Spring MySQL và RowCallbackHandler

Đây là giải pháp mùa xuân dựa trên câu trả lời do BalusC cung cấp.

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;
    }
}

Ở đâu đó trong mã của bạn:

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. TRIGGER khiến INSERT không thành công? Có thể được?

  2. MySQL sẽ không cho phép người dùng đăng nhập:Lỗi 1524

  3. Tôi có thể tạo chế độ xem với tham số trong MySQL không?

  4. Kết quả Nhóm MySQL theo ngày sử dụng dấu thời gian

  5. dòng lệnh mysql trả về thời gian thực hiện?