- 通过Jdbc查询数据方法:
connection.createStatement(); ResultSetrs=statement.executeQuery("");
该过程会将SQL的数据全部读入到内存中,使得内存一直增大,造成程序OOM,为了避免OOM,可采用以下两种方式:
- 一行行读取方式:
Statementstatement=connection.createStatement(); statement.setFetchSize(Integer.MIN_VALUE); ResultSetrs=statement.executeQuery("");
- 批次读取方式:(在jdbc连接中必须加上useCursorFetch=true)
Statementstatement=connection.createStatement(); // 根据MySQL服务以及网络设置合理的批次大小statement.setFetchSize(1024); ResultSetrs=statement.executeQuery("");