需要代码在java中创建连接池吗?我们如何确保连接池不返回已在使用的同一对象?如果客户端从连接池中取出连接后关闭连接会怎么样?
我想用简单的Java术语创建它,并希望看到它在多线程环境中如何工作.我的意思是哪些方法将同步,哪些方法不同步.这门课还会成为公共课吗?如果是,则任何人都可以访问此类并重新初始化连接池?
我有一些代码如下.但我不知道如何"关闭来自池的连接将其返回到池中,它不会在物理上关闭连接." 此外,我没有理解这一点"因为如果连接已从池中借用而尚未返回,则它不是"可用"且无法重新分配给池中的另一个客户端.
import java.util.*;
import java.sql.*;
class ConnectionPoolManager
{
String databaseUrl = "jdbc:mysql://localhost:3306/myDatabase";
String userName = "userName";
String password = "userPass";
Vector connectionPool = new Vector();
public ConnectionPoolManager()
{
initialize();
}
public ConnectionPoolManager(
//String databaseName,
String databaseUrl,
String userName,
String password
)
{
this.databaseUrl = databaseUrl;
this.userName = userName;
this.password = password;
initialize();
}
private void initialize()
{
//Here we can initialize all the information that we need
initializeConnectionPool();
}
private void initializeConnectionPool()
{
while(!checkIfConnectionPoolIsFull())
{ …Run Code Online (Sandbox Code Playgroud) 如何"13,5,8,4,2,1,9"按升序对字符串进行排序1,2,4,5,8,9,13?