当前位置: 代码迷 >> Java Web开发 >> proxool如何用?为什么小弟我的连接释放不了?
  详细解决方案

proxool如何用?为什么小弟我的连接释放不了?

热度:12   发布时间:2016-04-17 14:37:18.0
proxool怎么用?,为什么我的连接释放不了??
获取及关闭连接的类是这样写的:


import   java.beans.PropertyVetoException;
import   java.sql.Connection;
import   java.sql.DriverManager;
import   java.sql.PreparedStatement;
import   java.sql.ResultSet;
import   java.sql.SQLException;
import   java.sql.Statement;


public   class   DBUtil   {

              public   static   Connection   getConnection()     {
Connection   con=null;
    try{
con=DriverManager.getConnection( "proxool.oracle ");
}   catch   (SQLException   e)   {
e.printStackTrace();
}
return   con;

}

public   static   void   releaseResultSet(ResultSet   rs)   {
//   TODO   自动生成方法存根
try{
  if(rs!=null){
        rs.close();
    }

                  }catch(   Exception   e){
      e.printStackTrace();

                  }

}

public   static   void   releaseStatement(PreparedStatement   ps)   {
        //   TODO   自动生成方法存根
      try{
              if(ps!=null){
                  ps.close();
              }
      }catch(   Exception   e){
            e.printStackTrace();

      }
}

public   static   void   releaseConnection(Connection   con)   {
//   TODO   自动生成方法存根
try{
                                if(con!=null){
                                //con.close();
                               
}

}catch(   Exception   e){
e.printStackTrace();

}
}

public   static   void   releaseStatement(Statement   ps)   {
//   TODO   自动生成方法存根
try{
                                if(ps!=null){
                                ps.close();
}

}catch(   Exception   e){
e.printStackTrace();

}
}

}


我使用
getConnection()创建连接没有问题,但是在关闭连接的时候
使用releaseConnection(),如果在releaseConnection()执行con.close(),即
显式关闭连接的话,下一次获取连接的时候报“使用的连接已经关闭的错误”。
如果不执行con.close(),则下次调用会创建新的连接多次之后就会达到上限,报“已经达到了连接最大数量”的错误。

请问这个问题应该如何解决?最好能提供使用的代码,谢谢!!



------解决方案--------------------
lz的同一个Connection对象是否被多次使用了。
------解决方案--------------------
一般连接池中的releaseConnection()方法是将从ConnectionPool中获得的Connection对象放回到ConnectionPool中,而不是物理性的关闭Connection对象。

参考一下:http://community.csdn.net/Expert/topic/5538/5538855.xml?temp=.8157007中的: