sql >> Database teknologi >  >> RDS >> Mysql

Sådan administreres et stort datasæt ved hjælp af Spring MySQL og RowCallbackHandler

Her er en Spring-løsning baseret på svar leveret af 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;
    }
}

Et sted i din kode:

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


  1. Hvordan åbner man en SDF-fil (SQL Server Compact Edition)?

  2. Vigtigheden af ​​WHERE 1 i MySQL-forespørgsler

  3. Installation af RODBC/ROracle-pakker på OS X Mavericks

  4. Yii2 - venstre join på flere betingelse