日期:2014-05-18  浏览次数:20666 次

JSP中的JavaBean返回resultset的问题
现在状况如下:
两个Bean   a.java   b.java

1.a.java
//...
ReslutSet   rs=null;
public   ResultSet   executeQuery(String   sql){
//....取得ReslutSet的方法
this.rs=stmt.executeQuery(sql);;//获了一次记录集
return   this.rs;
}
public   void   rs_close(){this.rs.close();}


2.b.java
//...
a   a=new   a();
Reslultset   rs2;
rs2=a.executeQuery( "select   *   ... ");//------------------x
a.rs_close();//   这句是我想问的问题---------------------y

如果我执行了y句以后,再到rs2里面取值时,发现里面空空如也,x句到底做了些什么呢,他没有把记录集真正的传给rs2吗,我关闭对象a里面的rs   还会影响外面的rs2,这是怎么回事啊

如果不执行y句,可以从rs2中取到值


------解决方案--------------------
rs2 和 rs 都是同一个结果对象的 引用

对rs2或者rs 进行关闭 实际上是关闭同一个对象

这种情况 最好把rs里面值放到容器里面 来传递
------解决方案--------------------
是引用阿
------解决方案--------------------
同意楼上~~~ 你可以再建立一个javaBean来关闭result~~
等到所有数据都处理完毕了,再执行这个javaBean
------解决方案--------------------
建议lz好好看一下《编程思想〉的第二张
rs 把它引用的对象传递给了rs2,两个同时引用的是同一个对象,要是关闭一个,另一个也关闭了。


------解决方案--------------------
楼主可以试试把rs放在list中存储传递