当前位置: 技术问答>java相关
这个问题如何解决,呢?
来源: 互联网 发布时间:2015-05-30
本文导语: 我用tomcat + jsp+ javabean + servlet写,遇到一个问题: 一个class(db)用于连接数据库,返回ResultSet以及保存数据,在执行一下时,出现问题: rs1 = db.getResultSet("select * from emp") ; rs2 = db.getResultSet("select * from dept"); rs1...
我用tomcat + jsp+ javabean + servlet写,遇到一个问题:
一个class(db)用于连接数据库,返回ResultSet以及保存数据,在执行一下时,出现问题:
rs1 = db.getResultSet("select * from emp") ;
rs2 = db.getResultSet("select * from dept");
rs1.next();
系统提示ResultSet已经关闭,为什么呢?
采用以下不出错:
rs1 = db.getResultSet("select * from emp") ;
rs1.next();
rs1.close();
rs2 = db.getResultSet("select * from dept");
rs2.next();
但是我的程序在循环中要调用检查数据,我该如何解决?
一个class(db)用于连接数据库,返回ResultSet以及保存数据,在执行一下时,出现问题:
rs1 = db.getResultSet("select * from emp") ;
rs2 = db.getResultSet("select * from dept");
rs1.next();
系统提示ResultSet已经关闭,为什么呢?
采用以下不出错:
rs1 = db.getResultSet("select * from emp") ;
rs1.next();
rs1.close();
rs2 = db.getResultSet("select * from dept");
rs2.next();
但是我的程序在循环中要调用检查数据,我该如何解决?
|
rs1 = db.getResultSet("select * from emp") ;
rs2 = db.getResultSet("select * from dept");
两个记录集中用了同一个Statement,相对于class(db)写得有问题
当得到rs2时,rs1中的Statement覆盖了。
对于记录集循环,最好用两个不同的Statement.
你可以修改你的class(db)中的getResultSet(String sStr);方法为
getResultSet(String sStr,Statement,stmt);
在外面定义两个不同的stmt传过去。
rs2 = db.getResultSet("select * from dept");
两个记录集中用了同一个Statement,相对于class(db)写得有问题
当得到rs2时,rs1中的Statement覆盖了。
对于记录集循环,最好用两个不同的Statement.
你可以修改你的class(db)中的getResultSet(String sStr);方法为
getResultSet(String sStr,Statement,stmt);
在外面定义两个不同的stmt传过去。
|
因为在你的class(db)中使用的是同一个事例,只能返回一个结果集,
不能同时返回两个,可以像楼上说的来实现
不能同时返回两个,可以像楼上说的来实现