零额外开销最快的数据库连接池?HikariCP 入门介绍

拓展阅读

从零开始手写 mybatis (三)jdbc pool 如何从零手写实现数据库连接池 dbcp?

万字长文深入浅出数据库连接池 HikariCP/Commons DBCP/Tomcat/c3p0/druid 对比

Database Connection Pool 数据库连接池概览

c3p0 数据池入门使用教程

alibaba druid 入门介绍

数据库连接池 HikariCP 性能为什么这么快?

Apache Tomcat DBCP(Database Connection Pool) 数据库连接池-01-入门介绍

vibur-dbcp 并发、快速且功能完备的 JDBC 连接池,提供先进的性能监控功能-01-入门介绍

HikariCP

快速、简单、可靠。HikariCP 是一个"零额外开销"的生产就绪的 JDBC 连接池。

该库大小约为130Kb,非常轻量级。

在这里阅读关于我们是如何做到的。

构件 Artifacts

Java 11+ Maven 构件

xml 复制代码
<dependency>
   <groupId>com.zaxxer</groupId>
   <artifactId>HikariCP</artifactId>
   <version>5.1.0</version>
</dependency>

Java 8 Maven 构件 (维护模式)

xml 复制代码
<dependency>
   <groupId>com.zaxxer</groupId>
   <artifactId>HikariCP</artifactId>
   <version>4.0.3</version>
</dependency>

或者从这里下载。

:rocket: 初始化

您可以像这样使用HikariConfig类1:

java 复制代码
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/simpsons");
config.setUsername("bart");
config.setPassword("51mp50n");
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");

HikariDataSource ds = new HikariDataSource(config);

^1 MySQL特定示例,请勿逐字复制。^

或者直接实例化HikariDataSource如下所示:

java 复制代码
HikariDataSource ds = new HikariDataSource();
ds.setJdbcUrl("jdbc:mysql://localhost:3306/simpsons");
ds.setUsername("bart");
ds.setPassword("51mp50n");
...

或者基于属性文件:

java 复制代码
// 在文件系统和类路径中检查.properties文件
HikariConfig config = new HikariConfig("/some/path/hikari.properties");
HikariDataSource ds = new HikariDataSource(config);

示例属性文件:

ini 复制代码
dataSourceClassName=org.postgresql.ds.PGSimpleDataSource
dataSource.user=test
dataSource.password=test
dataSource.databaseName=mydb
dataSource.portNumber=5432
dataSource.serverName=localhost

或者基于java.util.Properties:

java 复制代码
Properties props = new Properties();
props.setProperty("dataSourceClassName", "org.postgresql.ds.PGSimpleDataSource");
props.setProperty("dataSource.user", "test");
props.setProperty("dataSource.password", "test");
props.setProperty("dataSource.databaseName", "mydb");
props.put("dataSource.logWriter", new PrintWriter(System.out));

HikariConfig config = new HikariConfig(props);
HikariDataSource ds = new HikariDataSource(config);

还有一个可用的系统属性,hikaricp.configurationFile,可以用来指定属性文件的位置。

如果您打算使用此选项,请使用默认构造函数构造HikariConfig或HikariDataSource实例,属性文件将会被加载。

相关推荐
这个昵称不容易9 分钟前
考试报名系统的设计与实现(SpringBoot + MySQL + Vue 三角色平台)
java·springboot·毕设
Adellle24 分钟前
设计模式指南 (Java 版) ㊁
java·开发语言·设计模式
特立独行的猫A1 小时前
cj-tauri:用仓颉写桌面与鸿蒙 PC 应用
java·后端·python
Lonely丶墨轩1 小时前
从一个 404 到负数 ID:第三方接口开发中的几次排错
java
聪明的笨猪猪1 小时前
实际工程问题:AI生成MyBatis批量操作的SQL超限与性能雪崩
java·经验分享·面试·ai编程
文丑颜不良啊1 小时前
LeetCode2501~2520题目解析
java·leetcode
瑞雪兆丰年兮2 小时前
JavaWeb-day07-MySQL(DQL&多表设计)
java·开发语言·数据库·sql·mysql·javaweb·web
唐老板2 小时前
Spring Boot 4 默认开虚拟线程,HikariCP 却成瓶颈
java
2601_9621066411 小时前
【Java Set综合实战】商品管理系统 + 图书收藏系统|Product、Book自定义类全套代码
java
RuoyiOffice12 小时前
SpringBoot+Vue3 凭证生命周期设计:审核、过账、冲销与反过账怎样保持账目一致
java·spring boot·事务·springboot3·财务系统·会计凭证·ruoyi office