我们计划在我们的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);
}
}
}
答案 0 :(得分:1)
首先从连接池中确定您需要的内容,然后查找提供该功能的库。
现在选择一个,使用已经在网上找到的流行观点,或者在SO上询问具体问题。
接下来,再次根据您对池的需求,为连接池功能创建一个抽象层,并使用所选的库实现。
这样,即使在开发过程中,如果您对基础库不满意,也可以更改基础库。