Java使用Oracle遇到的最大游标超出问题及其解决方法

大家如果遇到这样的问题,不要一味的去加大游标,那样不能真正解决问题; 一般情况会出现在FOR循环中不断的拿连接; 没有及时关闭,或者写了关闭其实没有真正得到关闭的效果; 这个问题也想了很久 最后想出了一个解决方案并实行成功 那就是:在FOR循环中做一个判断,当游标到达100的时候关闭并重新打开一个新的连接; 部分代码及思路: //得到新的连接; Connection conn2=DataBaseManager.connectOracleJDBC(); Statement stmt2=null; ResultSet rs2=null; stmt2 = conn2.createStatement(); for(int i;i<list.size();i++){ sql="select * from ******"; //如果直接这样写会出现超出游标最大值; //rs2 = stmt2.executeQuery(sql); //解决方法: if(i%100==0){ rs2.close(); stmt2.close(); stmt2 = conn2.createStatement(); rs2 = stmt2.executeQuery(querysql); }else{ rs2 = stmt2.executeQuery(querysql); } } rs2.close(); stmt2.close(); conn2.close();

你可能感兴趣的:(java,oracle,sql)