零額外開銷最快的數據庫連接池?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 構件

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

Java 8 Maven 構件 (維護模式)

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

或者從這裏下載

🚀 初始化

您可以像這樣使用HikariConfig1

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如下所示:

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

或者基於屬性文件:

// 在文件系統和類路徑中檢查.properties文件
HikariConfig config = new HikariConfig("/some/path/hikari.properties");
HikariDataSource ds = new HikariDataSource(config);

示例屬性文件:

dataSourceClassName=org.postgresql.ds.PGSimpleDataSource
dataSource.user=test
dataSource.password=test
dataSource.databaseName=mydb
dataSource.portNumber=5432
dataSource.serverName=localhost

或者基於java.util.Properties

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,可以用來指定屬性文件的位置。

如果您打算使用此選項,請使用默認構造函數構造HikariConfigHikariDataSource實例,屬性文件將會被加載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章