Java连接池选项

时间:2012-03-16 23:13:59

标签: java connection-pooling

我们计划在我们的java应用程序中实现连接池。我们谷歌并发现了一些像BoneCp,DbPool,Apache,c3p0,DbCp等。现在的问题是,我们发现很难决定应用哪一个,因为有些已经过时了。哪种方法最好的解决方案?

public class cServer
{
   class ConnectionHandler implements Runnable {
        ConnectionHandler(Socket receivedSocketConn1) {
          this.receivedSocketConn1=receivedSocketConn1;
        }


       public void run(){
            createConnection();
             while (read the socket values){
               //number of queries to run in terms of select,insert and updates.
             }
            closeConnection();
       }
       void createConnection(){

        try{
        dbconn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1?"+"user=user1&password=*******");
        dbconn.setAutoCommit(false);
        }
        catch(Throwable ex){
           ex.printStackTrace(System.out);
        }
     }
    }


    public void main()
    {
    try 
    {
      final ServerSocket serverSocketConn = new ServerSocket(8000);             
      while (true){
        try{
            Socket socketConn1 = serverSocketConn.accept();
            new Thread(new ConnectionHandler(socketConn1)).start();                     
       }
       catch(Exception e){
         e.printStackTrace(System.out);
       }
      }
    } 
    catch (Exception e){
      e.printStackTrace(System.out);
    }

    }

}

1 个答案:

答案 0 :(得分:1)

首先从连接池中确定您需要的内容,然后查找提供该功能的库。

现在选择一个,使用已经在网上找到的流行观点,或者在SO上询问具体问题。

接下来,再次根据您对池的需求,为连接池功能创建一个抽象层,并使用所选的库实现。

这样,即使在开发过程中,如果您对基础库不满意,也可以更改基础库。