数据库连接池 ( 三 ) springboot默认连接池 Hikari

3.Java常用连接池

3.0.常用连接池

在Java中开源的数据库连接池有以下几种 :

1.C3P0:是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。

2.Proxool:是一个Java SQL Driver驱动程序,提供了对选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中,完全可配置,快速、成熟、健壮。可以透明地为现存的JDBC驱动程序增加连接池功能。

3.Jakarta DBCP:DBCP是一个依赖Jakartacommons-pool对象池机制的数据库连接池。DBCP可以直接的在应用程序中使用。

3.1.Hikari

Hikari是一款非常强大,高效,并且号称“史上最快连接池”。

由于其性能方面比较好,并且在springboot2.0之后,采用的默认数据库连接池就是Hikari,在引用parents后不用专门再添加依赖。
也可以导入依赖

<dependency>
    <groupId>com.zaxxergroupId>
    <artifactId>HikariCPartifactId>
    <version>5.0.0version>
dependency>

性能方面的比较:hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。

3.1.1.配置

在Spring Boot自动化配置中,对于数据源的配置可以分为两类:

1、通用配置:以 spring.datasource.* 的形式存在,主要是对一些即使使用不同数据源也都需要配置的一些常规内容。

比如:数据库链接地址、用户名、密码等。通常就这些配置:

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/数据库名?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

2、数据源连接池配置:以 spring.datasource.<数据源名称>.* 的形式存在。

详细配置请访问:https://github.com/brettwooldridge/HikariCP

比如:Hikari的配置参数就是 spring.datasource.hikari.* 形式。下面这个是我们最常用的几个配置项及对应说明:

# 最小空闲连接,默认值10,小于0或大于maximum-pool-size,都会重置为maximum-pool-size
spring.datasource.hikari.minimum-idle=10
# 最大连接数,小于等于0会被重置为默认值10;大于零小于1会被重置为minimum-idle的值
spring.datasource.hikari.maximum-pool-size=20
# 空闲连接超时时间,默认值600000(10分钟),大于等于max-lifetime且max-lifetime>0,会被重置为0;
# 不等于0且小于10秒,会被重置为10秒。
spring.datasource.hikari.idle-timeout=500000
# 连接最大存活时间,不等于0且小于30秒,会被重置为默认值30分钟.设置应该比mysql设置的超时时间短
spring.datasource.hikari.max-lifetime=540000
# 连接超时时间:毫秒,小于250毫秒,否则被重置为默认值30秒
spring.datasource.hikari.connection-timeout=60000
# 用于测试连接是否可用的查询语句
spring.datasource.hikari.connection-test-query=SELECT 1

## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
spring.datasource.hikari.auto-commit=true
## 连接池名称
spring.datasource.hikari.pool-name=MyHikariCP

3.1.2.yml格式配置

spring:
  application:
    name: hikari-demo
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/atest_stuexam
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      maximum-pool-size: 1000 #最大连接数,默认值10.
      minimum-idle: 200 #最小空闲连接,默认值10.
      connection-timeout: 60000 #连接超时时间(毫秒),默认值30秒.
      #空闲连接超时时间,默认值600000(10分钟),只有空闲连接数大于最大连接数且空闲时间超过该值,才会被释放
      #如果大于等于 max-lifetime 且 max-lifetime>0,则会被重置为0.
      idle-timeout: 600000
      max-lifetime: 3000000 #连接最大存活时间,默认值30分钟.设置应该比mysql设置的超时时间短
      connection-test-query: select 1 #连接测试查询

你可能感兴趣的:(SQL与数据库,数据库,spring,boot,Hikari)