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中存储传递