mysql数据库连接池设置
时间: 2023-09-13 15:02:47 浏览: 52
在使用MySQL数据库时,连接池的设置可以提升系统的性能和稳定性。下面是一个基本的MySQL连接池设置示例:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
public class MySQLConnectionPool {
private static MySQLConnectionPool instance = null;
private List<Connection> connections = new ArrayList<Connection>();
private String url = "jdbc:mysql://localhost:3306/mydatabase";
private String user = "root";
private String password = "password";
private int initialConnections = 10;
private int maxConnections = 50;
private MySQLConnectionPool() {
try {
Class.forName("com.mysql.jdbc.Driver");
Properties props = new Properties();
props.setProperty("user", user);
props.setProperty("password", password);
for (int i = 0; i < initialConnections; i++) {
Connection conn = DriverManager.getConnection(url, props);
connections.add(conn);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static MySQLConnectionPool getInstance() {
if (instance == null) {
instance = new MySQLConnectionPool();
}
return instance;
}
public synchronized Connection getConnection() {
Connection conn = null;
if (connections.size() > 0) {
conn = connections.remove(0);
} else if (connections.size() < maxConnections) {
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
public synchronized void releaseConnection(Connection conn) {
if (conn != null && connections.size() < maxConnections) {
connections.add(conn);
} else {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在这个例子中,MySQLConnectionPool是一个单例类,它通过调用MySQL的JDBC驱动程序来建立连接。它包括了一些基本的设置,如连接URL、用户名、密码、初始连接数和最大连接数。连接池在初始化时创建初始连接数,并在需要更多连接时建立新连接。当连接不再使用时,它们将被释放回连接池,以便在下一次请求时再次使用。