为什么我的网站在运行一段时间后出现客户端的操作过多,之后就再也打不开了,重新启动服务器又可以了,我的数据库访问是写在类里的,查询的结果集通过类里的方法,返回给页面上的记录集对象,使用完成后我没有关闭他,原因是这些对象是页面级的,当页面关闭后就消失了。这样对吗?,请给个方案,急急。

解决方案 »

  1.   

    页面关闭后就消失了。这样对吗明确的答复你,不对!你的结构有问题,我想我可能帮不了你太多了,因为你的页面里只有ResultSet
    xxx.jsp
    <%@ page JSP的表头
    <%
      MyDbBean db = ...
      try{
        以下是你的JSP的代码
         
      }finally{
        db.closeConnection(); // 这里一定要关闭
      }
      

  2.   

    数据库使用完毕后一定要关闭,在你的JavaBean里写好关闭的方法  数据库用完后进行调用关闭,把连接归还到连接池(如果你用的是数据连接池的方法)。如果你不关闭连接,即使你连接池的连接数再多,早晚也会满的。
      

  3.   

    package com.data;
    import java.sql.*;
    public class dataaccess
    {
    private String odbcQuery;
    private Connection odbcconn;
    private Statement odbcstmt;
    private String myquerystr;
    private ResultSet sqlRst;
    private String realpath;public dataaccess(){
      odbcQuery=null;
      odbcconn=null;
      odbcstmt=null;
      myquerystr=null;
      sqlRst=null;
      realpath=null;
      
       try{
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    }
    catch(ClassNotFoundException e){
    e.printStackTrace();
    }
    }
    public dataaccess(String mysql){
       this.myquerystr=mysql;
    }//设置SQL语句
    public void setSqlstr(String mysql){
       this.myquerystr=mysql;
    }//设置数据库的物理路径
    public void setrealpath(String rpath){
       this.realpath=rpath;
    }
    //初始化需要的数据
    public void initial(){
    try{ 
    String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+realpath;
    this.odbcconn = DriverManager.getConnection(url); 
    this.odbcstmt = odbcconn.createStatement(); 
    this.odbcQuery = myquerystr;
    }catch (SQLException e) 

    e.printStackTrace();

    }
    //执行添加删除修改
    public void exeUpdate(){
    try{
    odbcstmt.executeUpdate(odbcQuery);
    }catch(SQLException e){
    e.printStackTrace();
    }
    }//执行查询
    public ResultSet exeQuery(){
    try{
    this.sqlRst=odbcstmt.executeQuery(odbcQuery); 
    return this.sqlRst;

    }
    catch(SQLException e)
    {
    return null;
    }
    }public void Closedb(){   
                      try   
                      {   
       if(sqlRst!=null) sqlRst.close();         
       if(odbcstmt!=null) odbcstmt.close();   
                            if(odbcconn!=null) odbcconn.close();   
                      }   
                      catch(Exception e)   
                      {   
                              system.out.println(e.tostring());   
                      }   
    }   
    }还是不行呀,代码是这样的,大家看有什么问题。
      

  4.   

    用aceess的时候也遇到过这样的问题。
    后来改用mysql就OK了。