你对数据库的连接的使用方式不恰当。建议你先参考一下网上关于连接池的文章。connection不用老是关闭的

解决方案 »

  1.   

    我的连接数据库的javabean,供你参考一下,我的没有你说的那个问题.跟你的思路也差不多.
    package mypackage;import java.sql.*;public class DataBaseBean
    {
    private String databasename = "LunTan";
    private String username = "sa";
    private String password = ""; static Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;

    public DataBaseBean() {} public void setDatabasename(String d)
    {
    databasename = d;
    } public String getDatabasename()
    {
    return databasename;
    } public void setUsername(String u)
    {
    username = u;
    } public String getUsername()
    {
    return username;
    } public void setPassword(String p)
    {
    password = p;
    } public String getPassword()
    {
    return password;
    } public void openConnection()
    {
    try
    {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    String url="jdbc:microsoft:sqlserver://127.0.0.1;databasename=" + databasename;
    // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    // String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\myweb\\Data\\liuyan.mdb"";
    // setUsername("Admin");
    conn = DriverManager.getConnection(url, username, password);
    }   
    catch (java.lang.ClassNotFoundException e)
    {
    e.printStackTrace();
    }
    catch (java.sql.SQLException e)
    {
    e.printStackTrace();
    }
    } public void closeConnection()
    {
    try
    {
    if (rs != null)
    {
    rs.close();
    }
    if (stmt != null)
    {
    stmt.close();
    }
    if (conn != null)
    {
    conn.close();
    }
    }
    catch (java.sql.SQLException e)
    {
    e.printStackTrace();
    }
    rs = null;
    stmt = null;
    conn = null;
    } public ResultSet executeQuery(String sql)
    {
    try
    {
    if (conn == null)
    {
    openConnection();
    }
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    rs = stmt.executeQuery(sql);
    }
    catch (SQLException e)
    {
    e.printStackTrace();
    }
    return rs;
    } public boolean executeUpdate(String sql)
    {
    boolean bupdate = false; try
    {
    if (conn == null)
    {
    openConnection();
    }
    stmt = conn.createStatement();
    int rowCount = stmt.executeUpdate(sql);
    if (rowCount != 0)
    {
    bupdate = true;
    }
    }
    catch (SQLException e)
    {
    e.printStackTrace();
    }
    return bupdate;
    }
    }
      

  2.   

    result对象是在connection必须保存与数据为连接情况下才可以使用的,你试着把关闭数据库的方法不命名为destory()
      

  3.   

    你最好每次用conn时,检查它是否是打开的,如果关闭应打开一个连接。
      

  4.   

    static Connection conn = null
    static 会成为数据库访问的瓶颈