如何在JdbcTemplate中使用提取大小来处理20+百万行?

时间:2019-03-22 19:48:18

标签: java spring jdbc spring-jdbc jdbctemplate

我的表有20亿以上的行,由于OutOfMemoryError,我无法使用单个查询选择所有行。我了解了fetchSize属性,由于它是常见的建议,它似乎可能有助于解决我的问题

但是我对如何使用它有疑问。

我有以下代码:

private final JdbcTemplate jdbcTemplate;
...
    jdbcTemplate.setFetchSize(1000);
    List<MyTable> myList= this.jdbcTemplate.query(
                "SELECT * FROM my_table",
                new Object[]{},
                MyTableMapper.INSTANCE
        );
    mylist.foreach(obj->processAndSave(obj));

看起来jdbc驱动程序将为每个请求选择1000。但是,我应该怎么做才能处理全部20+百万行?

我应该多次调用jdbcTemplate.query吗?

0 个答案:

没有答案