1

私はbatchSizeに従ってオブジェクトのリストを作成している次のコードを持っていますこれ
を実装する方法を提案することができます、rowmapperクラスのrownumがバッチサイズに等しいことを確認することを考えていますそして問題は
rowmapper実装からリストを返し作成する方法です

public class TestAppDao {
public JdbcTemplate jdbcTemplate;

public JdbcTemplate getJdbcTemplate() {
    return jdbcTemplate ;
}

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
    this.jdbcTemplate = jdbcTemplate;
}

public List<Circle> getAllCircle(int batchSize){
    String sql = "select * from circle";
    return jdbcTemplate.query(sql, new Object[]{}, new CircleMapper());
}

private static final class CircleMapper implements RowMapper<Circle>{

    @Override
    public Circle mapRow(ResultSet resultSet, int rowNum) throws SQLException {

        Circle circle = new Circle();
        circle.setId(resultSet.getInt(1));
        circle.setName(resultSet.getString(2));
        return circle;
    }

}

}

4

1 に答える 1

1

基本的に2つのオプションがあると思います:

ただし、2 番目のオプションは、サーバーから非常に多くの結果のみが返されることを保証するものでDBはありません。余分な結果はそれだけでカットされる可能性がありJDBCます => パフォーマンスが低下する可能性があります (オラクルの場合は、「Oracle から返される行数を制限する方法」を参照してください)。 JDBC データ ソース レベルで? )

自分で反復する必要があり、パフォーマンスが向上しないため (常に DB からすべてを選択する)、最悪のオプションとしてコードでそれをカットすることを検討します。

于 2013-01-15T18:49:58.080 に答える