首页 > 其他分享 >HikariCP使用实例

HikariCP使用实例

时间:2023-05-30 17:56:33浏览次数:36  
标签:HikariCP 数据源 resultSet 实例 ex 使用 config 连接池

当然,以下是一个详细的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>

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

标签:HikariCP,数据源,resultSet,实例,ex,使用,config,连接池
From: https://www.cnblogs.com/lukairui/p/17443967.html

相关文章

  • Hibernate使用实例
    示例1:创建实体类和映射importjavax.persistence.*;@Entity@Table(name="students")publicclassStudent{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;@Column(name="name")privateStringname......
  • JPA使用实例
    当然,以下是一个更详细的JPA示例代码,涵盖了实体类的关系映射、查询、插入、更新和删除操作:importjavax.persistence.*;@Entity@Table(name="students")publicclassStudent{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;......
  • Druid使用实例
    当然,以下是一个详细的Druid示例代码,演示了如何配置和使用Druid连接池:importcom.alibaba.druid.pool.DruidDataSource;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;publicclassDruidDemo{......
  • gRPC使用实例
    当然!这是三个使用Java实现的gRPC示例代码,用于演示gRPC的基本用法和通信模式:示例1:简单的UnaryRPC在此示例中,客户端向服务器发送请求,并接收单个响应。gRPC服务定义文件(.proto文件):syntax="proto3";packagecom.example.grpcdemo;serviceGreetingService{rpcSayHel......
  • Thrift使用实例
    当然!这是三个使用Java实现的Thrift示例代码,用于演示Thrift的基本用法和通信模式:示例1:简单的服务端和客户端在此示例中,我们将创建一个简单的Thrift服务端和客户端,客户端向服务端发送请求并接收响应。Thrift定义文件(.thrift文件):namespacejavacom.example.thriftdemoservice......
  • CSS 删除线:在 CSS 中使用文本装饰和划线
    CSS删除线是一个CSS属性,它使文本看起来像是被删除线一样,就像这样。在网络开发和写作中,这经常用于表示文本已被删除或不再相关。但它也可以用于不同的事情。删除线可以应用于span元素、段落、div、显示内联块或任何其他需要文本修饰的元素。除了下划线、斜体和粗体,CSS删除线也......
  • leetcode Kth Largest Element in a Stream——要熟悉heapq使用
    703.KthLargestElementinaStreamEasyDesignaclasstofind thekthlargestelementinastream.Notethatitisthekthlargestelementinthesortedorder,notthekthdistinctelement.Your KthLargest classwillhaveaconstructorwhichacceptsanin......
  • 漏洞扫描工具Nessus详细使用教程
    漏洞扫描工具Nessus详细使用教程zkzq于 2022-02-0918:14:35 发布28574 收藏 195分类专栏: 黑客工具 文章标签: 网络安全 web安全 渗透测试版权黑客工具专栏收录该内容11篇文章13订阅订阅专栏零基础学黑客,搜索公众号:白帽子左一1原文地址......
  • Dubbo使用实例
    下面是一个使用Java实现的Dubbo示例代码,包括服务提供者和服务消费者:首先,您需要确保已安装ZooKeeper,并且ZooKeeper服务器正在运行。接下来,您可以使用以下示例代码创建Dubbo的服务提供者和服务消费者:服务提供者示例代码:接口定义:publicinterfaceGreetingService{String......
  • .net调用动态库NationECCode.dll使用电子凭证二维码解码接口
    .net调用动态库NationECCode.dll使用电子凭证二维码解码接口 C#.net调用示例代码:[DllImport("NationECCode.dll",CallingConvention=CallingConvention.StdCall)]publicstaticexternvoidNationEcTrans(stringurl,stringinput,IntPtroutput);......