在Java中,可以使用数据库连接池来管理和复用数据库连接,从而提高应用程序的性能和效率。以下是一个简单的示例,展示了如何使用HikariCP库实现数据库连接池。
pom.xml
文件中添加以下依赖:<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>4.0.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
DatabaseConnectionPool.java
的类,用于初始化和管理数据库连接池:import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class DatabaseConnectionPool {
private static HikariDataSource dataSource;
static {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydatabase");
config.setUsername("username");
config.setPassword("password");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
config.setMaximumPoolSize(10);
config.setMinimumIdle(5);
config.setConnectionTimeout(30000);
config.setIdleTimeout(600000);
config.setMaxLifetime(1800000);
dataSource = new HikariDataSource(config);
}
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
public static void closeConnection(Connection connection) throws SQLException {
if (connection != null) {
connection.close();
}
}
}
在这个示例中,我们使用HikariCP库创建了一个名为dataSource
的数据库连接池。我们配置了连接池的各种属性,例如最大连接数、最小空闲连接数等。
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class Main {
public static void main(String[] args) {
try (Connection connection = DatabaseConnectionPool.getConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable")) {
while (resultSet.next()) {
System.out.println("Column1: " + resultSet.getString(1));
System.out.println("Column2: " + resultSet.getString(2));
}
} catch (SQLException e) {
System.err.println("Error: " + e.getMessage());
}
}
}
在主方法中,我们使用DatabaseConnectionPool.getConnection()
方法获取一个数据库连接,然后使用该连接创建一个Statement
对象并执行SQL查询。最后,我们使用ResultSet
对象处理查询结果。
注意,我们在try-with-resources
语句中使用了数据库连接、语句和结果集对象。这样可以确保在操作完成后自动关闭这些资源,避免资源泄漏。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。