我是在bean中建立connection,ResultSet,Statement
这些使用正常,但怎么关闭他们?
如果长期不关闭,会不会有比较严重的后果public class Conn {
     
    public Connection Connect()
    {
        try{
                //String strSql=new String();
                Connection con;
                Class.forName("com.mysql.jdbc.Driver");
                String dbUrl="jdbc:mysql://localhost:3306/bdgq";
                String dbUser="root";
                String dbPwd="";
                con=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
            return con;
        }
        catch(Exception fe){
        }
        return null;
    }
    public ResultSet rs(String strSql)
    {
        try
        {
        Connection conn=Connect();
        if(conn==null)
        {
            return null;
        }
        else
        {
        Statement stmt=conn.createStatement();
        ResultSet rs=stmt.executeQuery(strSql);
        return rs;
        }
        }
        catch(Exception fe)
        {}
        return null;
    }
    //
    public boolean executes(String strSql)
    {
        try
        {
            Connection conn=Connect();
            if(conn==null)
            {
                return false;
            }
            else
            {
                Statement stmt=conn.createStatement();
                stmt.executeUpdate(strSql);
                return true;
            }
        }
        catch(Exception fe)
        {}
        return false;
    }
}

解决方案 »

  1.   

    是不是可以建一个bean的监听事件,程序执行到某处,收到一个消息,就关闭掉连接,
    正在学习ing ,关注中ing,
      

  2.   

    不關閉數據庫連接很危險,你再建一個關閉數據庫的函數,
    如:
    public void release(Connection conn){
       try {
    if(!conn.isClosed())
     conn.close();
       }catch (SQLException ex) {
           ex.printStackTrace();
       }
    }
      

  3.   

    不關閉數據庫連接很危險,你再建一個關閉數據庫的函數,
    如:
    public void release(Connection conn){
    try {
    if(!conn.isClosed())
    conn.close();
    }catch (SQLException ex) {
    ex.printStackTrace();
    }
    }
    每次用完連接就調用關閉數據庫連接的函數就行了
    ---------------------------------------------------
    问题是调用关闭链接的函数时怎么传参数?
    我的操作数据库的方法是这样的:Conn cons=new Conn();String strSql="";
    try
                {
                ResultSet rs=cons.rs(strSql);
                if(rs.next())
                {
                   //读取成功
                }
                else
                {
                   //读取不成功
                }
                }
                catch(Exception e)
                {
                  //错误
                }
      

  4.   

    我是在bean中建立connection,ResultSet,Statement请问,关闭链接ResultSet,Statement,Connection该怎么做?
    ------------------------------------------------------public class Conn {public Connection Connect()
    {
    try{
    //String strSql=new String();
    Connection con;
    Class.forName("com.mysql.jdbc.Driver");
    String dbUrl="jdbc:mysql://localhost:3306/bdgq";
    String dbUser="root";
    String dbPwd="";
    con=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
    return con;
    }
    catch(Exception fe){
    }
    return null;
    }-------------------------------------------------------------------
    public ResultSet rs(String strSql)
    {
    try
    {
    Connection conn=Connect();
    if(conn==null)
    {
    return null;
    }
    else
    {
    Statement stmt=conn.createStatement();
    ResultSet rs=stmt.executeQuery(strSql);
    return rs;
    }
    }
    catch(Exception fe)
    {}
    return null;
    }
    //
    ------------------------------------------------------------------------------
    public boolean executes(String strSql)
    {
    try
    {
    Connection conn=Connect();
    if(conn==null)
    {
    return false;
    }
    else
    {
    Statement stmt=conn.createStatement();
    stmt.executeUpdate(strSql);
    return true;
    }
    }
    catch(Exception fe)
    {}
    return false;
    }
    }我的操作数据库的方法是这样的:Conn cons=new Conn();String strSql="";
    try
    {
    ResultSet rs=cons.rs(strSql);
    if(rs.next())
    {
    //读取成功
    }
    else
    {
    //读取不成功
    }
    }
    catch(Exception e)
    {
    //错误
    }///////////////////////////////////////////////////////////请问,关闭链接ResultSet,Statement,Connection该怎么做?
      

  5.   

    在后面加上:
    finally{
            rs.close();
            stmt.close();
            cons.close();
            }
      

  6.   

    樓主,這樣關閉,如下:Conn cons=new Conn();String strSql="";
    try
    {
    ResultSet rs=cons.rs(strSql);
    if(rs.next())
    {
    //读取成功
    }
    else
    {
    //读取不成功
    }
    }
    catch(Exception e)
    {
    //错误
    }finally{   
       stmt.close();
       //調用關閉連接的函數 release(Connection conn) ,把連接的對象作為參數傳遞進去 
       release(cons);
    }
      

  7.   

    galant2008(無賴) :stmt.close在servlet中并没有使用,怎么关闭?
    servlet中的cons并不是数据库链接,而是写历数据库链接的类的引用