求解:关闭的 Resultset: next

sbjtaxtdm 2009-11-26 09:54:59
大家看一下后台和页面代码

//方法名findTabProperty,前台JSP调用的
Session session = null;
String sql = "select * from " + tab + " where bas_code='" + Dcode + "'";
ResultSet rs = null;
Transaction tran = null;

try{
session = HibernateSessionFactory.getSession();
tran=session.beginTransaction();
rs = session.connection().createStatement().executeQuery(sql);
tran.commit();
return rs;
}catch(Exception e){
if(tran!=null)
tran.rollback();
e.printStackTrace();
return null;
}

页面的

<%
try{
ResultSet rs = dd.findTabProperty(Tab,Dcode);
while(rs.next())
{
if(rs.getString("bas_remark")==null)
{
remark = "无";
}
else{
remark = rs.getString("bas_remark");
}
%>
中间是把rs赋值给页面文本框
<%
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
%>


代码运行后,后台直接报java.sql.SQLException: 关闭的 Resultset: next,这个异常,后台代码我专门finally关闭的语句取了,也出现这样的异常,请问我的问题出在哪了?
...全文
578 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbjtaxtdm 2009-11-26
  • 打赏
  • 举报
回复
问题解决了,借用一楼的方法解决的,结贴了,谢谢各位
sbjtaxtdm 2009-11-26
  • 打赏
  • 举报
回复
List之类当然好,主要是我这个方法和页面是公共的,我要对多张表的数据都在这一个页面进行处理,所以用的rs
villagehead 2009-11-26
  • 打赏
  • 举报
回复
不知道!呵呵

不过一般的做法是后台把数据取到一个“容器”里,
比如bean,list,map之类的放到request里面
然后再在jsp里面取出来显示

小小的建议lz改一下,
现在的做法,前后台耦合性太高。

good luck
swandragon 2009-11-26
  • 打赏
  • 举报
回复
最好不要在页面上操作ResultSet
可以把查询结果放到集合中,页面上处理集合
sbjtaxtdm 2009-11-26
  • 打赏
  • 举报
回复
不过为何在JSP中取得ResultSet,会被关闭呢?
sbjtaxtdm 2009-11-26
  • 打赏
  • 举报
回复
谢谢一楼,按你说的方式解决了
不过我用CachedRowSet crs=new CachedRowSet();
过不去,提示无法找到,我换成
CachedRowSet crs=new CachedRowSetImpl();
这样就可以了。
十分感谢。
小小都不懂 2009-11-26
  • 打赏
  • 举报
回复
mark
gao512008 2009-11-26
  • 打赏
  • 举报
回复
连接已关闭
sbjtaxtdm 2009-11-26
  • 打赏
  • 举报
回复
我先试试,谢谢!
  • 打赏
  • 举报
回复
例如 return rs;用下面代码提到
CachedRowSet crs=new CachedRowSet();
crs.populate(rs);
return crc;
  • 打赏
  • 举报
回复
不能把ResultSet传到JSP,因连接已关闭
要用sun.jdbc.rowset.CachedRowSet重新打包ResultSet,作为返回参数传给JSP

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧