用java写一个jdbc连接池
时间: 2024-05-14 13:14:16 浏览: 20
这是一个简单的基于Java的JDBC连接池示例。它使用了一个Vector来存储连接对象。在对象池初始化时,它会创建一定数量的连接对象。在需要使用连接时,它会从对象池中获取一个连接对象,使用完毕后将其返回给对象池。
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Vector;
public class JDBCConnectionPool {
private String url, username, password, driverClassName;
private int maxConnections;
private Vector<Connection> connectionPool;
public JDBCConnectionPool(String url, String username, String password, String driverClassName, int maxConnections) {
this.url = url;
this.username = username;
this.password = password;
this.driverClassName = driverClassName;
this.maxConnections = maxConnections;
connectionPool = new Vector<Connection>();
}
public synchronized Connection getConnection() {
Connection connection = null;
if (connectionPool.size() > 0) {
connection = connectionPool.remove(0);
} else {
connection = newConnection();
}
return connection;
}
public synchronized void returnConnection(Connection connection) {
if (connection != null && connectionPool.size() < maxConnections) {
connectionPool.add(connection);
} else {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private Connection newConnection() {
Connection connection = null;
try {
Class.forName(driverClassName);
connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
}
```
示例用法:
```java
JDBCConnectionPool pool = new JDBCConnectionPool(
"jdbc:mysql://localhost:3306/mydb",
"root",
"password",
"com.mysql.jdbc.Driver",
10);
Connection connection = pool.getConnection();
// Use connection...
pool.returnConnection(connection);
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)