[使用JDBCTemplate从批处理表中选择记录

问题描述 投票:0回答:1

我正在处理非常大的数据集,数百万条记录。我想读取一批1000条记录来处理它们,然后提取下1000条记录,依此类推,直到所有记录都被处理为止。

我尝试过:

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

但是上述解决方案将按1进行处理。我正在寻找对象列表。

请帮助。

java jdbc jdbctemplate
1个回答
0
投票
    jdbcTemplate.setFetchSize(1000);
    List<MyUser> users = jdbcTemplate.query("select * from table", new RowMapper<MyUser>() {
        @Override
        public MyUser mapRow(ResultSet rs, int rowNum) throws SQLException {
            return new MyUser(rs.getString("name"));
        }
    });

文档:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html#setFetchSize-int-

您可能需要的可能是setFetchSize。如果您这样写,则每个人可以读取1,000个用户。

© www.soinside.com 2019 - 2024. All rights reserved.