关于JDBC ResultSet 的问题,高手请指教一下。
sql = "select * from " + tableNameInDerby;
rs = stmt.executeQuery(sql);
String insertSql = "insert into "+tableName+ " ("+columnNames+") values (" + paraList+ ")";
psmt = conn.prepareStatement(insertSql);
while(rs.next()) {
if (tableNameInDerby.equalsIgnoreCase("tb_log_info")) {
logger.debug("h : " + h++);
}
for (int k = 1; k <=columnNO; k++) {
psmt.setObject(k, rs.getObject(k), rsMeta.getColumnType(k));
}
psmt.executeUpdate();
psmt.clearParameters();
}
我的rs里面存放了20万条记录,在rs.next()的时候出错了。出错的时候h刚刚打印到1万多。
各位大侠,请帮我看看到底是什么原因。
我还想知道rs.next()的内部机制是什么?? 别人说如果记录比较多的话那么rs = stmt.executeQuery(sql)这句话就会报内存溢出的错误。但是我的程序并不是在这句话中抛的异常,而是循环rs的时候出错了。我想知道rs中是存放所有的记录吗? 还是只存放对记录的一个引用。rs.next()内部是怎么实现的??