java 自写mysql连接池
时间: 2024-04-23 17:21:15 浏览: 24
在Java中自己编写MySQL连接池可以提高数据库连接的效率和性能。下面是一个简单的Java自写MySQL连接池的示例代码[^1]:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class ConnectionPool {
private static final String url = "jdbc:mysql://localhost:3306/mydatabase";
private static final String user = "root";
private static final String password = "password";
private static final int initialSize = 5;
private static final int maxPoolSize = 10;
private List<Connection> connectionPool;
public ConnectionPool() {
connectionPool = new ArrayList<>();
initializeConnectionPool();
}
private void initializeConnectionPool() {
try {
Class.forName("com.mysql.jdbc.Driver");
for (int i = 0; i < initialSize; i++) {
Connection connection = DriverManager.getConnection(url, user, password);
connectionPool.add(connection);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
public synchronized Connection getConnection() {
Connection connection = null;
if (!connectionPool.isEmpty()) {
connection = connectionPool.remove(connectionPool.size() - 1);
} else if (connectionPool.size() < maxPoolSize) {
try {
connection = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
}
return connection;
}
public synchronized void releaseConnection(Connection connection) {
if (connection != null) {
connectionPool.add(connection);
}
}
}
```
使用自写的MySQL连接池,可以通过以下步骤获取和释放数据库连接:
```java
ConnectionPool connectionPool = new ConnectionPool();
Connection connection = connectionPool.getConnection();
// 使用连接进行数据库操作
connectionPool.releaseConnection(connection);
```