本文目录
- Connection和Statement关闭了ResultSet是不是也没了
- java数据库操作,老是提示ResultSet已关闭
- 帮忙改错,提示ResultSet已关闭
- resultset 需要关闭吗
- 我的java分页查询出现这样的异常,请问怎么解决java.sql.SQLException: 关闭的 Resultset: next
- jdbc数据库连接在方法中,而且要返回statement 或resultset 在方法里关闭连接会怎么样要怎么处理
- 当定义一个类的返回类型ResultSet后,还能关闭掉ResultSet吗
- (一定赚了分才采纳) java.sql.SQLException: 关闭的 Resultset: next
- 关闭resultSet,Connection会自动关闭吗
Connection和Statement关闭了ResultSet是不是也没了
是的,connection关闭,会使用stament也关闭,然后resultset也随之关闭。
java数据库操作,老是提示ResultSet已关闭
在默认情况下,同一时间每个Statement对象在只能打开一个ResultSet对象。因此,如果读取一个ResultSet对象与读取另一个交叉,则这两个对象必须是由不同的Statement对象生成的。如果存在某个语句的打开的当前ResultSet对象,则Statement接口中的所有执行方法都会隐式关闭它。你的delRecord方法里,rs开始由executeQuery得到,然后在while循环内,又执行了executeUpdate,所以rs被关闭,在执行rs.isAfterLast()时出现异常。。rs=sql.executeQuery("select*frommessage");while(rs.next()){if(this.number.equals(rs.getString(1).trim())){sql.executeUpdate("deletefrommessagewherenumber=’"+this.number+"’");break;}}
帮忙改错,提示ResultSet已关闭
public class wlw { private static Connection con = null; private static ResultSet rs = null; private String drive = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; private String url = "jdbc晕qlserver://localhost:1433;databaseName=xinxing;user=wjx;password=;"; public wlw () { try { Class.forName(drive); System.out.println("drive is ok!"); con = DriverManager.getConnection(url); System.out.println("connection is ok!"); } catch (Exception e1) { System.out.println(e1); } } public Statement getStatement() { try { return con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); } catch (SQLException e) { e.printStackTrace(); } return null; } public ResultSet excuteQuery(String sql) { try { rs = getStatement().executeQuery(sql); } catch (Exception e) { System.out.println("error2"); System.out.println(e); } return rs; } public int excuteUpdate(String sql) { int result = 1; try { result = getStatement().executeUpdate(sql); } catch (Exception e2) { System.out.println(e2); System.out.println("error1"); result = 0; } return result; } }
resultset 需要关闭吗
第三方的数据库连接池,使用的时候,获取到Connection之后,使用完成,调用的关闭方法(close()) ,并没有将Connection关闭,只是放回到连接池中,如果调用的这个方法,而没有手动关闭PreparedStatement等,则这个PreparedStatement并没有关闭.
我的java分页查询出现这样的异常,请问怎么解决java.sql.SQLException: 关闭的 Resultset: next
你应该是在这个方法executesQl中已经关闭了resultset了,你看看。你为什么这么写呢?就正常些,con,preparestatement,resultset就行了。
jdbc数据库连接在方法中,而且要返回statement 或resultset 在方法里关闭连接会怎么样要怎么处理
如果要返回statement 或者resultset 就不能关闭连接,关了的话作为返回值被传出去的statement 或者resultset 被访问到的时候就会抛出异常。连接不关不会被有异常,但程序被多次执行后就有连接被占满,不能取得连接的问题出现。一般需要用到rs的数据,应在取得rs后,把里边的数据从新包装后返回,比如返回集合类或者bean类。在包装完成后关闭rs,state,conn。这样没问题
当定义一个类的返回类型ResultSet后,还能关闭掉ResultSet吗
return语句用try-finally包围起来
try{ return st.executeQuery();}finally{ st.close();}
不过真心不推荐这样写。没有直接return一个ResultSet的。
程序设计有问题。
(一定赚了分才采纳) java.sql.SQLException: 关闭的 Resultset: next
while (rs.next()) {.................... }这个不需要这么写,直接写Students st = new Students();st.setName(rs.getString(1));list.add(st); 因为是每行结果所以你再rs.next()就报错了,已经被关闭了,你看,mapRow的意思就是每行
关闭resultSet,Connection会自动关闭吗
正好相反,是Connection关闭后,resultSet会自动关闭,退一步讲,你应该知道一个Connection可以产生多个resultSet,那你关了一个resultSet,其它的肯定也不会关掉的!