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()内部是怎么实现的??
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()内部是怎么实现的??
解决方案 »
- System.out.println(super.print() + " id:" 帮看下为什么有错的
- 程序出现了一点问题 说啥整不明白了 求救贴
- jdk无法在Linux下显示中文
- 我想学习JAVA但不知道怎么学啊?
- 面试题 求解
- 100分求教怎样使用SWT中的ImageData创建一个二值图像,并写成文件!
- hashtable & hashmap 中的.put("",此处不能为null)
- 如何将一大堆class文件转化为jar文件并且能运行?
- msdos中如何用java命令执行程序
- 急,谁有jbuilder 6 的注册码,一定给分
- 请问java都可以开发什么???????
- [求助] 我写的第一个聊天小程序,很幼稚的那种。 为什么Server说了一句话,Client收不到呢?
游标.
我想知道rs中是存放所有的记录吗? 还是只存放对记录的一个引用。rs.next()内部是怎么实现的??
rs本身并没有什么记录.应该只是对首行记录的一个引用
rs.next();内部就是利用数据库的游标来实现的。next()方法控制游标向下移动.
com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -964, SQLSTATE: 57011, SQLERRMC: null
可是我不能commit啊,因为不止这一个表,这个表完了之后还有其它的表,如果中间commit的话那下面的表如果出异常就回滚不回去了。