我的表有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
吗?