问题是这样的,我首先需要对数据库进行查询,对返回来的结果集再进行update.代码如下:
Connection con = this.getConnection();//获取一个数据库连接
String sql = "......";
Statement stmt = con.createStatement
( ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
//这里就是对数据库的update了,
sql = "......";
stmt.executeUpdate(sql);
}
跟踪了一下,第二次执行rs.next()的时候出错了,错误提示信息是:数据库结果集已关闭。
但是如果对于对数据库的更新我是用新的Connection和Statement的话,就没有问题了,请高手指点一下这是怎么回事?
Connection con = this.getConnection();//获取一个数据库连接
String sql = "......";
Statement stmt = con.createStatement
( ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
//这里就是对数据库的update了,
sql = "......";
stmt.executeUpdate(sql);
}
跟踪了一下,第二次执行rs.next()的时候出错了,错误提示信息是:数据库结果集已关闭。
但是如果对于对数据库的更新我是用新的Connection和Statement的话,就没有问题了,请高手指点一下这是怎么回事?
{
//这里就是对数据库的update了,
sql = "......";
stmt.executeUpdate(sql);
}
写法错误。
应该把 sql = "......";
stmt.executeUpdate(sql);
写到循环外面。
{
//这里就是对数据库的update了,
sql = "......";
stmt.executeUpdate(sql);
}
rs还没完成
stmt改变 当然不行了
用新的Connectin和Statement肯定就OK了。不知这样说对不?