5

約500万件のレコードを持つテーブルがあります。このテーブルからすべてのレコードを読み取り、それらに対して何らかの処理を実行したいと考えています。ここで、これらのレコードを一度に 1000 個のバッチでクエリし、それらを処理して次の 1000 個のレコードを取得するなどを行います。

ただし、JDBCTemplate.query メソッドは、テーブル内のすべてのレコードを含むリストのみを返します。明らかに、メモリに 500 万レコードを保持することはできません。

Spring JDBC を使用して問題に対処する方法はありますか? それが役立つ場合、基礎となるデータベースはDB2になります。

4

2 に答える 2

2

このようなことを試してください

    jdbcTemplate.query(sql, new RowCallbackHandler() {
        public void processRow(ResultSet arg0) throws SQLException {
            // ...
        }
    });

このようにして、任意の数のレコードを 1 つずつ処理できます

于 2013-04-23T10:43:01.517 に答える