diff --git a/src/main/resources/hikaricp.properties b/src/main/resources/hikaricp.properties index 1fd3074..7ca5dbb 100644 --- a/src/main/resources/hikaricp.properties +++ b/src/main/resources/hikaricp.properties @@ -1,17 +1,16 @@ +# 注意,以下时间都为毫秒 -# \u6CE8\u610F\uFF0C\u4EE5\u4E0B\u65F6\u95F4\u90FD\u4E3A\u6BEB\u79D2 - -#-------------\u5FC5\u9700\u7684\u53C2\u6570-------------------------------- -# JDBC \u9A71\u52A8\u4E2D DataSource \u7684\u5B9E\u73B0\u7C7B\u5168\u9650\u5B9A\u7C7B\u540D\u3002\u4E0D\u652F\u6301 XA DataSource -# \u5982\u679C\u6307\u5B9A\uFF0C HikariCP \u5C06\u4F7F\u7528 DataSouce.getConnection \u83B7\u53D6\u8FDE\u63A5\u800C\u4E0D\u662F\u4F7F\u7528 DriverManager.getConnection\uFF0C\u5B98\u65B9\u5EFA\u8BAE\u6307\u5B9A\uFF08mysql \u9664\u5916\uFF09 +#-------------必需的参数-------------------------------- +# JDBC 驱动中 DataSource 的实现类全限定类名。不支持 XA DataSource +# 如果指定, HikariCP 将使用 DataSouce.getConnection 获取连接而不是使用 DriverManager.getConnection,官方建议指定(mysql 除外) # dataSourceClassName= -# \u5982\u679C\u6307\u5B9A\uFF0C HikariCP \u5C06\u4F7F\u7528 DriverManager.getConnection \u83B7\u53D6\u8FDE\u63A5\u800C\u4E0D\u662F\u4F7F\u7528 DataSouce.getConnection +# 如果指定, HikariCP 将使用 DriverManager.getConnection 获取连接而不是使用 DataSouce.getConnection jdbcUrl=jdbc:mysql://localhost:3306/github_demo?characterEncoding=utf8&serverTimezone=GMT%2B8 # jdbcUrl=jdbc:mysql://localhost:3306/github_demo # dataSource.characterEncoding=utf8 # dataSource.serverTimezone=GMT+8 -# \u5982\u679C\u4F7F\u7528 mysql\uFF0C\u4E3A\u4E86\u66F4\u597D\u7684\u6027\u80FD\uFF0C\u53EF\u4EE5\u8FDB\u884C\u5982\u4E0B\u914D\u7F6E +# 如果使用 mysql,为了更好的性能,可以进行如下配置 dataSource.cachePrepStmts=true dataSource.prepStmtCacheSize=250 dataSource.prepStmtCacheSqlLimit=2048 @@ -23,128 +22,128 @@ dataSource.cacheServerConfiguration=true dataSource.elideSetAutoCommits=true dataSource.maintainTimeStats=false -# \u7528\u6237\u540D\u548C\u5BC6\u7801 +# 用户名和密码 username=root password=root -#-------------\u5E38\u7528\u7684\u53C2\u6570-------------------------------- -# \u4ECE\u6C60\u4E2D\u501F\u51FA\u7684\u8FDE\u63A5\u662F\u5426\u9ED8\u8BA4\u81EA\u52A8\u63D0\u4EA4\u4E8B\u52A1 -# \u9ED8\u8BA4 true +#-------------常用的参数-------------------------------- +# 从池中借出的连接是否默认自动提交事务 +# 默认 true autoCommit=true -# \u5F53\u6211\u4ECE\u6C60\u4E2D\u501F\u51FA\u8FDE\u63A5\u65F6\uFF0C\u613F\u610F\u7B49\u5F85\u591A\u957F\u65F6\u95F4\u3002\u5982\u679C\u8D85\u65F6\uFF0C\u5C06\u629B\u51FA SQLException -# \u9ED8\u8BA4 30000 ms\uFF0C\u6700\u5C0F\u503C 250 ms\u3002\u652F\u6301 JMX \u52A8\u6001\u4FEE\u6539 +# 当我从池中借出连接时,愿意等待多长时间。如果超时,将抛出 SQLException +# 默认 30000 ms,最小值 250 ms。支持 JMX 动态修改 connectionTimeout=30000 -# \u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u91CC\u95F2\u7F6E\u591A\u4E45\u65F6\u4F1A\u88AB\u629B\u5F03 -# \u5F53 minimumIdle < maximumPoolSize \u624D\u751F\u6548 -# \u9ED8\u8BA4\u503C 600000 ms\uFF0C\u6700\u5C0F\u503C\u4E3A 10000 ms\uFF0C0\u8868\u793A\u7981\u7528\u8BE5\u529F\u80FD\u3002\u652F\u6301 JMX \u52A8\u6001\u4FEE\u6539 +# 一个连接在池里闲置多久时会被抛弃 +# 当 minimumIdle < maximumPoolSize 才生效 +# 默认值 600000 ms,最小值为 10000 ms,0表示禁用该功能。支持 JMX 动态修改 idleTimeout=600000 -# \u591A\u4E45\u68C0\u67E5\u4E00\u6B21\u8FDE\u63A5\u7684\u6D3B\u6027 -# \u68C0\u67E5\u65F6\u4F1A\u5148\u628A\u8FDE\u63A5\u4ECE\u6C60\u4E2D\u62FF\u51FA\u6765\uFF08\u7A7A\u95F2\u7684\u8BDD\uFF09\uFF0C\u7136\u540E\u8C03\u7528isValid()\u6216\u6267\u884CconnectionTestQuery\u6765\u6821\u9A8C\u6D3B\u6027\uFF0C\u5982\u679C\u901A\u8FC7\u6821\u9A8C\uFF0C\u5219\u653E\u56DE\u6C60\u91CC\u3002 -# \u9ED8\u8BA4 0 \uFF08\u4E0D\u542F\u7528\uFF09\uFF0C\u6700\u5C0F\u503C\u4E3A 30000 ms\uFF0C\u5FC5\u987B\u5C0F\u4E8E maxLifetime\u3002\u652F\u6301 JMX \u52A8\u6001\u4FEE\u6539 +# 多久检查一次连接的活性 +# 检查时会先把连接从池中拿出来(空闲的话),然后调用isValid()或执行connectionTestQuery来校验活性,如果通过校验,则放回池里。 +# 默认 0 (不启用),最小值为 30000 ms,必须小于 maxLifetime。支持 JMX 动态修改 keepaliveTime=0 -# \u5F53\u4E00\u4E2A\u8FDE\u63A5\u5B58\u6D3B\u4E86\u8DB3\u591F\u4E45\uFF0CHikariCP \u5C06\u4F1A\u5728\u5B83\u7A7A\u95F2\u65F6\u628A\u5B83\u629B\u5F03 -# \u9ED8\u8BA4 1800000 ms\uFF0C\u6700\u5C0F\u503C\u4E3A 30000 ms\uFF0C0 \u8868\u793A\u7981\u7528\u8BE5\u529F\u80FD\u3002\u652F\u6301 JMX \u52A8\u6001\u4FEE\u6539 +# 当一个连接存活了足够久,HikariCP 将会在它空闲时把它抛弃 +# 默认 1800000 ms,最小值为 30000 ms,0 表示禁用该功能。支持 JMX 动态修改 maxLifetime=1800000 -# \u7528\u6765\u68C0\u67E5\u8FDE\u63A5\u6D3B\u6027\u7684 sql\uFF0C\u8981\u6C42\u662F\u4E00\u4E2A\u67E5\u8BE2\u8BED\u53E5\uFF0C\u5E38\u7528select 'x' -# \u5982\u679C\u9A71\u52A8\u652F\u6301 JDBC4.0\uFF0C\u5EFA\u8BAE\u4E0D\u8BBE\u7F6E\uFF0C\u8FD9\u65F6\u9ED8\u8BA4\u4F1A\u8C03\u7528 Connection.isValid() \u6765\u68C0\u67E5\uFF0C\u8BE5\u65B9\u5F0F\u4F1A\u66F4\u9AD8\u6548\u4E00\u4E9B -# \u9ED8\u8BA4\u4E3A\u7A7A +# 用来检查连接活性的 sql,要求是一个查询语句,常用select 'x' +# 如果驱动支持 JDBC4.0,建议不设置,这时默认会调用 Connection.isValid() 来检查,该方式会更高效一些 +# 默认为空 # connectionTestQuery= -# \u6C60\u4E2D\u81F3\u5C11\u8981\u6709\u591A\u5C11\u7A7A\u95F2\u8FDE\u63A5\u3002 -# \u5F53\u7A7A\u95F2\u8FDE\u63A5 < minimumIdle\uFF0C\u603B\u8FDE\u63A5 < maximumPoolSize \u65F6\uFF0C\u5C06\u65B0\u589E\u8FDE\u63A5 -# \u9ED8\u8BA4\u7B49\u4E8E maximumPoolSize\u3002\u652F\u6301 JMX \u52A8\u6001\u4FEE\u6539 +# 池中至少要有多少空闲连接。 +# 当空闲连接 < minimumIdle,总连接 < maximumPoolSize 时,将新增连接 +# 默认等于 maximumPoolSize。支持 JMX 动态修改 minimumIdle=5 -# \u6C60\u4E2D\u6700\u591A\u5BB9\u7EB3\u591A\u5C11\u8FDE\u63A5\uFF08\u5305\u62EC\u7A7A\u95F2\u7684\u548C\u5728\u7528\u7684\uFF09 -# \u9ED8\u8BA4\u4E3A 10\u3002\u652F\u6301 JMX \u52A8\u6001\u4FEE\u6539 +# 池中最多容纳多少连接(包括空闲的和在用的) +# 默认为 10。支持 JMX 动态修改 maximumPoolSize=10 -# \u7528\u4E8E\u8BB0\u5F55\u8FDE\u63A5\u6C60\u5404\u9879\u6307\u6807\u7684 MetricRegistry \u5B9E\u73B0\u7C7B -# \u9ED8\u8BA4\u4E3A\u7A7A\uFF0C\u53EA\u80FD\u901A\u8FC7\u4EE3\u7801\u8BBE\u7F6E +# 用于记录连接池各项指标的 MetricRegistry 实现类 +# 默认为空,只能通过代码设置 # metricRegistry= -# \u7528\u4E8E\u62A5\u544A\u8FDE\u63A5\u6C60\u5065\u5EB7\u72B6\u6001\u7684 HealthCheckRegistry \u5B9E\u73B0\u7C7B -# \u9ED8\u8BA4\u4E3A\u7A7A\uFF0C\u53EA\u80FD\u901A\u8FC7\u4EE3\u7801\u8BBE\u7F6E +# 用于报告连接池健康状态的 HealthCheckRegistry 实现类 +# 默认为空,只能通过代码设置 # healthCheckRegistry= -# \u8FDE\u63A5\u6C60\u540D\u79F0\u3002 -# \u9ED8\u8BA4\u81EA\u52A8\u751F\u6210 +# 连接池名称。 +# 默认自动生成 poolName=zzsCP -#-------------\u5F88\u5C11\u7528\u7684\u53C2\u6570-------------------------------- -# \u5982\u679C\u542F\u52A8\u8FDE\u63A5\u6C60\u65F6\u4E0D\u80FD\u6210\u529F\u521D\u59CB\u5316\u8FDE\u63A5\uFF0C\u662F\u5426\u5FEB\u901F\u5931\u8D25 TODO -# >0 \u65F6\uFF0C\u4F1A\u5C1D\u8BD5\u83B7\u53D6\u8FDE\u63A5\u3002\u5982\u679C\u83B7\u53D6\u65F6\u95F4\u8D85\u8FC7\u6307\u5B9A\u65F6\u957F\uFF0C\u4E0D\u4F1A\u5F00\u542F\u8FDE\u63A5\u6C60\uFF0C\u5E76\u629B\u51FA\u5F02\u5E38 -# =0 \u65F6\uFF0C\u4F1A\u5C1D\u8BD5\u83B7\u53D6\u5E76\u9A8C\u8BC1\u8FDE\u63A5\u3002\u5982\u679C\u83B7\u53D6\u6210\u529F\u4F46\u9A8C\u8BC1\u5931\u8D25\u5219\u4E0D\u5F00\u542F\u6C60\uFF0C\u4F46\u662F\u5982\u679C\u83B7\u53D6\u5931\u8D25\u8FD8\u662F\u4F1A\u5F00\u542F\u6C60 -# <0 \u65F6\uFF0C\u4E0D\u7BA1\u662F\u5426\u83B7\u53D6\u6216\u6821\u9A8C\u6210\u529F\u90FD\u4F1A\u5F00\u542F\u6C60\u3002 -# \u9ED8\u8BA4\u4E3A 1 +#-------------很少用的参数-------------------------------- +# 如果启动连接池时不能成功初始化连接,是否快速失败 TODO +# >0 时,会尝试获取连接。如果获取时间超过指定时长,不会开启连接池,并抛出异常 +# =0 时,会尝试获取并验证连接。如果获取成功但验证失败则不开启池,但是如果获取失败还是会开启池 +# <0 时,不管是否获取或校验成功都会开启池。 +# 默认为 1 initializationFailTimeout=1 -# \u662F\u5426\u5728\u4E8B\u52A1\u4E2D\u9694\u79BB HikariCP \u81EA\u5DF1\u7684\u67E5\u8BE2\u3002 -# autoCommit \u4E3A false \u65F6\u624D\u751F\u6548 -# \u9ED8\u8BA4 false +# 是否在事务中隔离 HikariCP 自己的查询。 +# autoCommit 为 false 时才生效 +# 默认 false isolateInternalQueries=false -# \u662F\u5426\u5141\u8BB8\u901A\u8FC7 JMX \u6302\u8D77\u548C\u6062\u590D\u8FDE\u63A5\u6C60 -# \u9ED8\u8BA4\u4E3A false +# 是否允许通过 JMX 挂起和恢复连接池 +# 默认为 false allowPoolSuspension=false -# \u5F53\u8FDE\u63A5\u4ECE\u6C60\u4E2D\u53D6\u51FA\u65F6\u662F\u5426\u8BBE\u7F6E\u4E3A\u53EA\u8BFB -# \u9ED8\u8BA4\u503C false +# 当连接从池中取出时是否设置为只读 +# 默认值 false readOnly=false -# \u662F\u5426\u5F00\u542F JMX -# \u9ED8\u8BA4 false +# 是否开启 JMX +# 默认 false registerMbeans=true -# \u6570\u636E\u5E93 catalog -# \u9ED8\u8BA4\u7531\u9A71\u52A8\u51B3\u5B9A +# 数据库 catalog +# 默认由驱动决定 # catalog= -# \u5728\u6BCF\u4E2A\u8FDE\u63A5\u521B\u5EFA\u540E\u3001\u653E\u5165\u6C60\u524D\uFF0C\u9700\u8981\u6267\u884C\u7684\u521D\u59CB\u5316\u8BED\u53E5 -# \u5982\u679C\u6267\u884C\u5931\u8D25\uFF0C\u8BE5\u8FDE\u63A5\u4F1A\u88AB\u4E22\u5F03 -# \u9ED8\u8BA4\u4E3A\u7A7A +# 在每个连接创建后、放入池前,需要执行的初始化语句 +# 如果执行失败,该连接会被丢弃 +# 默认为空 # connectionInitSql= -# JDBC \u9A71\u52A8\u4F7F\u7528\u7684 Driver \u5B9E\u73B0\u7C7B -# \u4E00\u822C\u6839\u636E jdbcUrl \u5224\u65AD\u5C31\u884C\uFF0C\u62A5\u9519\u8BF4\u627E\u4E0D\u5230\u9A71\u52A8\u65F6\u624D\u9700\u8981\u52A0 -# \u9ED8\u8BA4\u4E3A\u7A7A +# JDBC 驱动使用的 Driver 实现类 +# 一般根据 jdbcUrl 判断就行,报错说找不到驱动时才需要加 +# 默认为空 # driverClassName= -# \u8FDE\u63A5\u7684\u9ED8\u8BA4\u4E8B\u52A1\u9694\u79BB\u7EA7\u522B -# \u9ED8\u8BA4\u503C\u4E3A\u7A7A\uFF0C\u7531\u9A71\u52A8\u51B3\u5B9A +# 连接的默认事务隔离级别 +# 默认值为空,由驱动决定 # transactionIsolation= -# \u6821\u9A8C\u8FDE\u63A5\u6D3B\u6027\u5141\u8BB8\u7684\u8D85\u65F6\u65F6\u95F4 -# \u9ED8\u8BA4 5000 ms\uFF0C\u6700\u5C0F\u503C\u4E3A 250 ms\uFF0C\u8981\u6C42\u5C0F\u4E8E connectionTimeout\u3002\u652F\u6301 JMX \u52A8\u6001\u4FEE\u6539 +# 校验连接活性允许的超时时间 +# 默认 5000 ms,最小值为 250 ms,要求小于 connectionTimeout。支持 JMX 动态修改 validationTimeout=5000 -# \u8FDE\u63A5\u5BF9\u8C61\u53EF\u4EE5\u88AB\u501F\u51FA\u591A\u4E45 -# \u9ED8\u8BA4 0\uFF08\u4E0D\u5F00\u542F\uFF09\uFF0C\u6700\u5C0F\u5141\u8BB8\u503C\u4E3A 2000 ms\u3002\u652F\u6301 JMX \u52A8\u6001\u4FEE\u6539 +# 连接对象可以被借出多久 +# 默认 0(不开启),最小允许值为 2000 ms。支持 JMX 动态修改 leakDetectionThreshold=0 -# \u76F4\u63A5\u6307\u5B9A DataSource \u5B9E\u4F8B\uFF0C\u800C\u4E0D\u662F\u901A\u8FC7 dataSourceClassName \u6765\u53CD\u5C04\u6784\u9020 -# \u9ED8\u8BA4\u4E3A\u7A7A\uFF0C\u53EA\u80FD\u901A\u8FC7\u4EE3\u7801\u8BBE\u7F6E +# 直接指定 DataSource 实例,而不是通过 dataSourceClassName 来反射构造 +# 默认为空,只能通过代码设置 # dataSource= -# \u6570\u636E\u5E93 schema -# \u9ED8\u8BA4\u7531\u9A71\u52A8\u51B3\u5B9A +# 数据库 schema +# 默认由驱动决定 # schema= -# \u6307\u5B9A\u8FDE\u63A5\u6C60\u83B7\u53D6\u7EBF\u7A0B\u7684 ThreadFactory \u5B9E\u4F8B -# \u9ED8\u8BA4\u4E3A\u7A7A\uFF0C\u53EA\u80FD\u901A\u8FC7\u4EE3\u7801\u8BBE\u7F6E +# 指定连接池获取线程的 ThreadFactory 实例 +# 默认为空,只能通过代码设置 # threadFactory= -# \u6307\u5B9A\u8FDE\u63A5\u6C60\u5F00\u542F\u5B9A\u65F6\u4EFB\u52A1\u7684 ScheduledExecutorService \u5B9E\u4F8B\uFF08\u5EFA\u8BAE\u8BBE\u7F6EsetRemoveOnCancelPolicy(true)\uFF09 -# \u9ED8\u8BA4\u4E3A\u7A7A\uFF0C\u53EA\u80FD\u901A\u8FC7\u4EE3\u7801\u8BBE\u7F6E +# 指定连接池开启定时任务的 ScheduledExecutorService 实例(建议设置setRemoveOnCancelPolicy(true)) +# 默认为空,只能通过代码设置 # scheduledExecutor= -# JNDI \u914D\u7F6E\u7684\u6570\u636E\u6E90\u540D -# \u9ED8\u8BA4\u4E3A\u7A7A +# JNDI 配置的数据源名 +# 默认为空 # dataSourceJndiName= diff --git a/src/main/resources/hikaricp_base.properties b/src/main/resources/hikaricp_base.properties index 65ddb0c..bcdef2c 100644 --- a/src/main/resources/hikaricp_base.properties +++ b/src/main/resources/hikaricp_base.properties @@ -1,19 +1,19 @@ -#-------------\u5FC5\u9700\u7684\u53C2\u6570-------------------------------- +#-------------必需的参数-------------------------------- jdbcUrl=jdbc:mysql://localhost:3306/github_demo?characterEncoding=utf8&serverTimezone=GMT%2B8 username=root password=root #-------------JMX-------------------------------- -# \u662F\u5426\u5F00\u542F JMX -# \u9ED8\u8BA4 false +# 是否开启 JMX +# 默认 false registerMbeans=true -# \u662F\u5426\u5141\u8BB8\u901A\u8FC7 JMX \u6302\u8D77\u548C\u6062\u590D\u8FDE\u63A5\u6C60 -# \u9ED8\u8BA4\u4E3A false +# 是否允许通过 JMX 挂起和恢复连接池 +# 默认为 false allowPoolSuspension=false -# \u8FDE\u63A5\u6C60\u540D\u79F0\u3002 -# \u9ED8\u8BA4\u81EA\u52A8\u751F\u6210 +# 连接池名称。 +# 默认自动生成 poolName=zzsCP