HikariCP是一个快速、简单、可靠的JDBC连接池。大约130Kb,相比于其它流行的数据库连接池非常的轻, spingboot2.0以及在国外非常有名的playFramework框架默认使用该连接池。
连接池 | 文件数 | 代码行数 |
---|---|---|
Vibur | 34 | 1927 |
HikariCP | 21 | 2218 |
Tomcat-JDBC | 31 | 6345 |
BoneCP | 49 | 7293 |
C3P0 | 120 | 1550 |
HikariCP提供了多种创建数据库连接池的方式
硬编码HikariConfig
1
2
3
4
5
6
7
8
9HikariConfig 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);直接硬编码HikariDataSource
1
2
3
4
5HikariDataSource ds = new HikariDataSource();
ds.setJdbcUrl("jdbc:mysql://localhost:3306/simpsons");
ds.setUsername("bart");
ds.setPassword("51mp50n");
...加载properties文件
1
2
3
4
5
6
7
8
9
10
11
12HikariConfig config = new HikariConfig("/some/path/hikari.properties");
HikariDataSource ds = new HikariDataSource(config);
example.properties
dataSourceClassName=org.postgresql.ds.PGSimpleDataSource
dataSource.user=test
dataSource.password=test
dataSource.databaseName=mydb
dataSource.portNumber=5432
dataSource.serverName=localhostHikariConfig是一个用来设置数据库连接属性属性的普通java类。还给连接池设置了一些常用默认属性:
1 | private static final long CONNECTION_TIMEOUT = SECONDS.toMillis(30); |
值得说明的是HikariCP还可以使用系统的一个默认属性:hikaricp.configurationFile
1 | public HikariConfig() { |
hikaricp.configurationFile,可用于指定属性文件的位置。 如果您打算使用此选项,则使用默认构造函数构造HikariConfig或HikariDataSource实例,HikariCP会加载该值对应的属性文件。