我有一个2ResultSet,它是从同一个语句对象生成的。
代码示例如下:
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
con = DBAccess.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery(Query1);
// operate on the resultset
rs = stmt.executeQuery(Query2); // Is it legal and do not have side-effects?
// operate on the resultset
// close everythings (Resultset, Statement, Connection)我把它检查得很好。我怀疑它会有什么副作用吗?
发布于 2012-07-18 18:12:21
来自javadoc:
默认情况下,每个语句对象只能同时打开一个ResultSet对象。因此,如果一个ResultSet对象的读取与另一个对象的读取交织在一起,那么每个对象都必须由不同的语句对象生成。如果一个打开的ResultSet对象存在,语句接口中的所有执行方法都会隐式关闭一个状态的当前对象。
所以是的,你可以安全地做这件事。执行第二个查询后,您就不能使用第一个结果集了。
发布于 2012-09-22 09:47:33
对于每个语句对象,只有一个Resultset对象。因此,当您执行另一个查询时,它将在内部关闭现有的结果集对象,并打开一个新的结果集对象。但是,您不能访问前面的结果集是否服从But。
不会有副作用。你可以随意使用它。
发布于 2012-09-11 21:17:01
在使用相同的变量引用第二个结果集之前,请记住关闭第一个结果集。如果只在执行第二条语句之后才关闭结果集,则第二个结果集将关闭,而第一个结果集未关闭。
https://stackoverflow.com/questions/11547701
复制相似问题