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

jsp 里两个resultset同时使用
同时使用时出现结果集关闭的错误,先从数据库返回一个结果集,处理好后,在返回第二个结果集,就没错误

------解决方案--------------------
同时使用是你指向的游标位置不乱套了么?
为什么不用两个分别的ResultSet呢。。
------解决方案--------------------
在java里每个ResultSet结果集都需要一个单独的statement来支撑,如果想使用多个ResultSet就必须使用创建多个statement。
------解决方案--------------------
引用:
PreparedStatement pr = con.prepareStatement("select * from onLine");
ResultSet re = pr.executeQuery();
int oL = 0;
for (; re.next();) {
if (1 == re.getInt("onLine")) {
oL++;
}
}
out.println("在线人数有:" + oL);
PreparedStatement pr2 = con.prepareStatement("select * from onLine where name=?");
pr2.setString(1, (String) session.getAttribute("yongHu"));
ResultSet re2 = pr2.executeQuery();
re2.next();        
上面这样写就没有错误
PreparedStatement pr = con.prepareStatement("select * from onLine");
ResultSet re = pr.executeQuery();
PreparedStatement pr2 = con.prepareStatement("select * from onLine where name=?");
pr2.setString(1, (String) session.getAttribute("yongHu"));
ResultSet re2 = pr2.executeQuery();
int oL = 0;
for (; re.next();) {
if (1 == re.getInt("onLine")) {
oL++;
}
}
out.println("在线人数有:" + oL);
re2.next();
然后这样写,就会出现结果集关闭的错误
这样写,确定有错?我感觉没错!
------解决方案--------------------
为什么先不封装好成两个对象然后直接取,jsp操作ResultSet 这是面向过程编程的思路吧,没有一点可重用性