温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java主方法怎样实现数据库连接池

发布时间:2024-12-06 12:11:58 来源:亿速云 阅读:80 作者:小樊 栏目:编程语言

在Java中,可以使用数据库连接池来管理和复用数据库连接,从而提高应用程序的性能和效率。以下是一个简单的示例,展示了如何使用HikariCP库实现数据库连接池。

  1. 首先,确保已将HikariCP库添加到项目的依赖项中。如果使用Maven,可以在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>
  1. 创建一个名为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的数据库连接池。我们配置了连接池的各种属性,例如最大连接数、最小空闲连接数等。

  1. 在主方法中使用数据库连接池执行SQL查询:
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语句中使用了数据库连接、语句和结果集对象。这样可以确保在操作完成后自动关闭这些资源,避免资源泄漏。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI