问题描述
- 大神们,这样写容易内存溢出,这段代码怎么优化?1000张表,表结构相同,表名不同
-
raf = new RandomAccessFile(srcFilerw""); int index = 0; //获取imei数据 connection = getConnection(); String _sql = null; for(int i=0;i<10;i++){ _sql = ""select * from "" + ""imei_00"" + i; ps = connection.prepareStatement(_sql); rs = ps.executeQuery(); while(rs.next()){ Long imei = rs.getLong(""imei""); raf.writeLong(imei); index++; } } for(int i=10;i<100;i++){ _sql = ""select * from "" + ""imei_0"" + i; ps = connection.prepareStatement(_sql); rs = ps.executeQuery(); while(rs.next()){ Long imei = rs.getLong(""imei""); raf.writeLong(imei); index++; } } for(int i=100;i<1000;i++){ _sql = ""select * from "" + ""imei_"" + i; ps = connection.prepareStatement(_sql); rs = ps.executeQuery(); while(rs.next()){ Long imei = rs.getLong(""imei""); raf.writeLong(imei); index++; } } log.info(""生成的imei中数据为:"" + index);
解决方案
和代码是否简洁没关系,是你每次用调用完后 rs、ps 没有关闭/释放吧。
解决方案二:
这个关闭是在finally中关闭的。
时间: 2024-12-22 12:03:11