有依存关系的, 先要有Connnection才能有Statement, Statement执行以后才能产生ResultSet, 关闭Connection就关闭了另两个.

解决方案 »

  1.   

    呵呵,对于这个问题,我也存在一些迷惑;尤其在关闭连接的时候;如果只关闭ResultSet,那么他的Connection任然没有close。所有我们在释放资源的时候;
    一般要把这三者的资源全部释放ResultSet.close();Statement.close();Connection.close();所以我想既然ResultSet是由Statement-》Connection-》ResultSet的顺序来创建的;那么前面的Statement或者Connection关闭以后ResultSet都不再可用。
      

  2.   

    如果你关闭了connection
    你和数据库的连接就已经断开了
    就不能对数据库进行操作
    resultset的产生是通过执行statement产生的
      

  3.   

    自我错误纠正:
    Statement、Connection、ResultSet三者的关系是应该是Connection-》Statement-》ResultSet。
      

  4.   

    我的疑问是否:
    我现在想在一个方法中取得ResultSet,,如:ResultSet myMethod1(){...}
    然后在另一个方法中作为参数传进去。void myMethod2(ResultSet rs){..}这样,在myMethod1中取得ResultSet,关闭Connection & Statement,这样以后ResultSet里面的数据还有效吗?能传进myMethod2吗?
      

  5.   

    我的疑问是否:
    我现在想在一个方法中取得ResultSet,,如:ResultSet myMethod1(){...}
    然后在另一个方法中作为参数传进去。void myMethod2(ResultSet rs){..}这样,在myMethod1中取得ResultSet,关闭Connection & Statement,这样以后ResultSet里面的数据还有效吗?能传进myMethod2吗?
      

  6.   

    按照java的处理方法,connection关闭之后,与数据库的所有东西都关闭了,保存在resultset里面的数据跟着释放,但是在各个数据库开发商进行了一些操作,使得connection关闭之后resultset之中的数据可以继续使用~~好像是这样的,  -_-  个人想法
      

  7.   

    那你为什么不先把resultset中的值取出来
    存储在一些数组中啊!
    然后在进行参数传递
      

  8.   

    Statement,ResultSet 是一一对应的,一旦Statement变了,resultset也跟着变了。
    Connection可以有多个不同的statement。
    如果Connection关了的话,在jdbc1.0,2.0中Statement,ResultSet就都没有了,在3.0中引入了Rowset可以解决这个问题,Rowset类似于ResultSet,但是不依存于Connection。它可以根据需要自己连接数据库。