关于Operation not allowed after ResultSet closed的错误?

前几天写一个EasyUi的项目 遇到了一个Operation not allowed after ResultSet closed的错 翻译出来是:关闭ResultSet后不允许操作   

而我的dao里面是写了俩个方法 一个为外部调用 一个是内部调用  在dao里面用外部方法调内部的方法  这样在我要使用的时候就调一次也可以得到效果

我的dao里面的代码是:

        private Connection con=null;
	private PreparedStatement ps=null;
	private ResultSet rs=null;
	 
	/**
	 * 外部方法
	 */
	@Override
	public List<TreeEntity> findTreeParent() {
		List<TreeEntity> lt=new ArrayList<>();
		 try {
			    con=getConnection();
			    StringBuffer sb=new StringBuffer();
			    sb.append("SELECT * FROM t_bookmenu WHERE pid IS NULL ORDER BY bynumber");
				ps=con.prepareStatement(sb.toString());
				System.out.println(sb);
				rs=ps.executeQuery();
				while(rs.next()) {
					TreeEntity t=new TreeEntity();
					t.setId(rs.getString("mid")); 
					t.setText(rs.getString("mname"));
					t.setChecked(false);
					//调子节点
					t.setChildren(findTreeChildren(rs.getString("mid")));
					lt.add(t);
		       } 
				return lt;  
			} catch (Exception e) {
				e.printStackTrace();
			}finally {
				close(con, ps, rs);
			}
		         return null;
	                }

	/**
	 * 内部方法
	 */
	@Override
	public Set<TreeEntity> findTreeChildren(String mid) {
		   Set<TreeEntity> st=new HashSet<>();
		 try {
			 StringBuffer sb=new StringBuffer();
			 sb.append("  SELECT mname,MID,pid,murl,byNumber FROM v_findBookMenuAll  ");
			 sb.append(" WHERE pid='"+mid+"'");
				con=getConnection();
				ps=con.prepareStatement(sb.toString());
				System.out.println(sb);
				rs=ps.executeQuery();
				while(rs.next()) {
					TreeEntity t=new TreeEntity();
					t.setId(rs.getString("mid")); 
					t.setText(rs.getString("mname"));
					t.setChecked(false);
					st.add(t);
			} 
				return st;  
			} catch (Exception e) {
				e.printStackTrace();
			}finally {
				close(con, ps, rs);
			}
		    return null;
	                }

结果在调用的时候就出现了Operation not allowed after ResultSet closed这个错误

原来是在res使用完毕之前,不能关闭conn。

因为是循环 将 

findTreeChildren()方法的close去掉 因为操作还没执行完res不能关闭  


 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值