首页 > 代码库 > ResultSet连续通过Statement赋值,会出现错误
ResultSet连续通过Statement赋值,会出现错误
ResultSet连续通过Statement赋值,会出现错误
错误提示:jdbc Operation not allowed after ResultSet closed
1 public Task[] getTaskInfo(String a_id){ 2 Task[] task = null; 3 Connection conn = null; 4 Statement stmt = null; 5 ResultSet rs1 = null; 6 ResultSet rs2 = null; 7 try{ 8 Class.forName("com.mysql.jdbc.Driver"); 9 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/p_note","root","root");10 stmt = conn.createStatement();11 String sql = "select count(*) from tasks";12 String sql2 = "select * from tasks" ;13 rs1 = stmt.executeQuery(sql);14 rs2 = stmt.executeQuery(sql2);15 int count = 0;16 while(rs1.next()){17 count = rs1.getInt(1);18 }19 task = new Task[count];20 int i=0;21 while(rs2.next()){22 task[i] = new Task();23 task[i].setA_id(a_id);24 task[i].setT_id(rs2.getString("t_id"));25 task[i].setExecuteTime("t_time");26 task[i].setExecuteSite(rs2.getString("t_site"));27 task[i].setItemName(rs2.getString("t_items"));28 task[i].setSetout(rs2.getString("t_setout"));29 task[i].setT_createTime(rs2.getString("t_createTime"));30 task[i].setT_stamp(rs2.getString("t_stamp"));31 task[i].setT_stick(rs2.getString("t_stick"));32 i++;33 }34 35 }catch(Exception ex){36 ex.printStackTrace();37 38 }finally{39 try{40 if(conn != null){41 conn.close();42 }43 if(stmt != null){44 stmt.close();45 }46 if(rs1 != null){47 rs1.close();48 }49 if(rs2 != null){50 rs2.close();51 }52 }catch(Exception ex){53 ex.printStackTrace();54 }55 }56 57 return task;58 }
红色标记部分会出现错误
原因:数据库提供的方法中,当再次用相同的Statement对ResultSet赋值时,会有个判断 if(ReslutSet != null) {}.在这个方法里面,rs1会被关掉。所以就存在了以上的问题。jdbc Operation not allowed after ResultSet closed
ResultSet连续通过Statement赋值,会出现错误
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。