HikariCP使用实例

发布时间 2023-05-30 17:53:46作者: 田野与天

当然,以下是一个详细的HikariCP示例代码,演示了如何配置和使用HikariCP连接池:

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class HikariCPDemo {
    public static void main(String[] args) {
        // 创建HikariCP配置对象
        HikariConfig config = new HikariConfig();

        // 配置数据源属性
        config.setJdbcUrl("jdbc:mysql://localhost:3306/mydatabase");
        config.setUsername("username");
        config.setPassword("password");

        // 配置连接池属性
        config.setMinimumIdle(5);
        config.setMaximumPoolSize(10);
        config.setConnectionTimeout(3000);

        // 创建Hikari数据源
        HikariDataSource dataSource = new HikariDataSource(config);

        Connection connection = null;
        PreparedStatement statement = null;
        ResultSet resultSet = null;

        try {
            // 从连接池获取连接
            connection = dataSource.getConnection();

            // 执行查询
            String sql = "SELECT * FROM students";
            statement = connection.prepareStatement(sql);
            resultSet = statement.executeQuery();

            // 处理查询结果
            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                int age = resultSet.getInt("age");
                System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            // 释放资源
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }

            // 关闭数据源
            dataSource.close();
        }
    }
}

在上述代码中,我们首先创建了一个HikariConfig对象,并配置了数据库连接信息和连接池属性。然后,我们使用HikariDataSource类创建一个HikariCP数据源对象,将配置对象传入构造函数。接下来,我们通过调用getConnection()方法从连接池中获取一个连接对象。然后,我们执行一个查询操作,将结果打印出来。最后,我们释放资源,包括关闭结果集、预处理语句和连接对象,以及关闭数据源。

需要注意的是,在实际使用中,我们通常会将数据源的配置信息放在外部配置文件中,例如hikari.properties,并使用Properties对象加载配置。然后,可以通过调用config.load(properties)方法将属性配置应用到HikariConfig对象中。

此外,为了正确使用HikariCP连接池,您还需要将HikariCP的依赖项添加到项目的构建文件(例如pom.xml)中。例如,在Maven项目中,您可以添加以下依赖项:

<dependency>
    <groupId>

com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>4.0.3</version>
</dependency>

请确保根据您实际的数据库配置进行适当的修改,并在运行代码之前正确配置数据库连接信息。