我有一個包含大約500萬條記錄的表。我想閱讀這張表中的所有記錄並對它們做一些處理。 現在我想要批量查詢這些記錄,比如1000,處理它們並獲取下一個1000條記錄等等。批量選擇記錄Spring JDBC模板
但是,JDBCTemplate.query方法僅返回包含表中所有記錄的List。顯然,我不能在內存中擁有500萬條記錄。
有沒有辦法解決我的問題,使用Spring JDBC?如果有幫助的話,基礎數據庫將會是DB2。
我有一個包含大約500萬條記錄的表。我想閱讀這張表中的所有記錄並對它們做一些處理。 現在我想要批量查詢這些記錄,比如1000,處理它們並獲取下一個1000條記錄等等。批量選擇記錄Spring JDBC模板
但是,JDBCTemplate.query方法僅返回包含表中所有記錄的List。顯然,我不能在內存中擁有500萬條記錄。
有沒有辦法解決我的問題,使用Spring JDBC?如果有幫助的話,基礎數據庫將會是DB2。
閱讀javadoc of JdbcTemplate。還有很多其他方法,也稱爲query()
,不返回列表,並採取RowCallbackHandler
或ResultSetExtractor
作爲參數。使用這些。
要設置在結果集一次提取的行數,覆蓋applyStatementSettings()
並調用Statement.setFetchSize()
嘗試這樣
jdbcTemplate.query(sql, new RowCallbackHandler() {
public void processRow(ResultSet arg0) throws SQLException {
// ...
}
});
東西這種方式,您可以通過一個
處理任意數量的記錄之一在上面如果我們調用arg0.setString('col_name','value'),那麼它會每次調用DB嗎? – 2017-06-06 13:07:18
我們如何通過它提高性能?在2天內只有少數缺乏記錄處理..我們如何可以加載數百萬的數據? – 2015-10-12 09:42:57