查询完一次即关闭相应ResultSet
加上
rs.close();
加上
rs.close();
解决方案 »
- SSH框架的学习解惑
- jsp中分页
- 请各位帮忙(org.apache.jasper.JasperException: Exception in JSP)
- 帮我看看代码 jsp调用bean出错
- JSP+ssh+mysql
- 登陆的判断用哪个方法好
- 问题:怎么让客户端打印的文件不可修改?
- 检测e_mail是否含有'@'和'.',我这个好像不对?请指点
- ★★★急问怎么才能知道一个webpage发送的request到底是POST型的还是GET型的?★★★
- form表单提交后跳转不到 后台SpringMVC controller类 代码如下 新手SpringMVC求助!
- 有关四舍五入得问题
- 高分征解:60分解决简单问题
//对rs的处理语句
}
if(rs != null) rs.close();上面语句需要放到try语句中
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("","","");
Statement stat=con.createStatement(); for(int j=0;j<CHNletters;j++)
{
strThree=strThreeTemp.substring(3*j,3*j+3);
strSQLFour="SELECT DISTINCT code_C4 "+
"FROM city_code "+
"WHERE code_C3 LIKE '%"+strThree+"%'";
try{ rs=stat.executeQuery(strSQLFour); rs.next();
str=rs.getString("code_C4").trim();
if(rs!=null)rs.close(); }catch(Exception e){
System.out.println(e.toString());
} }
}catch(Exception e)
{
System.out.println(e.toString());
}
str=rs.getString("code_C4").trim();
if(rs!=null)rs.close(); }catch(Exception e){
System.out.println(e.toString());
}
>>
try{ rs=stat.executeQuery(strSQLFour); rs.next();
str=rs.getString("code_C4").trim();
}catch(SQLException e){
System.out.println(e.toString());
} finally {
try{ if(rs!=null)rs.close(); } catch (Exception e) { }
}
若在循环内定义stat,同样抛出违例“java.sql.SQLException: 用尽的 Resultset”而且,访问SQL Server的数据库就不会出现这个问题。
try{ rs=stat.executeQuery(strSQLFour); rs.next();
str=rs.getString("code_C4").trim();
if(rs!=null)rs.close(); }catch(Exception e){
System.out.println(e.toString());
}
>>
try{ rs=stat.executeQuery(strSQLFour); rs.next();
str=rs.getString("code_C4").trim();
}catch(SQLException e){
System.out.println(e.toString());
} finally {
try{ if(rs!=null)rs.close(); } catch (Exception e) { }
try{ if(stat!=null)stat.close(); } catch (Exception e) { }
}一个rs和stat都不应该调用两次close
rs=stat.executeQuery(strSQLFour);
是一个新的rs,再用rs.close();并不是调用两次close()!你的数据库连接也没有关,stat也没有关,很容易把资源占光,然后出错!
把你的数据库重启一下,释放掉没用的链接,并在程序最后把stat和con都close
把所有的stat、con、rs都close,仍然无效。:(
rs=stat.executeQuery(strSQLFour); ===>while(rs.next()){
str=rs.getString("code_C4").trim();
}
rs.close(); }catch(Exception e){
System.out.println(e.toString());
}
试试吧
{
Statement stat=con.createStatement();
......
rs=stat.executeQuery(strSQLFour);
if(rs.next())
{
......
}
rs.close();
if(stat != null)
{
stat.close();
}
}