JDBC C3P0 数据源配置
程序员文章站
2022-05-24 12:30:24
...
c3p0官网:https://github.com/swaldman/c3p0
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://IP:PORT/DB?useUnicode=true&characterEncoding=utf8"/>
<property name="user" value="root"/>
<property name="password" value="root"/>
<!--连接池中初始化时建立的连接数-->
<property name="initialPoolSize" value="20"/>
<!--连接池中无可用连接时,一次性获取连接数-->
<property name="acquireIncrement" value="5"/>
<!--连接池中最大连接数-->
<property name="maxPoolSize" value="100"/>
<!--最大空闲时间,单位:秒,超过30秒未使用则连接设为过期,在空闲检查执行之后会被移出连接池。若为0则永不过期。Default: 0 -->
<property name="maxIdleTime" value="30"/>
<!--空闲连接检查时间周期,单位:秒,0为不执行检查。Default: 0 -->
<property name="idleConnectionTestPeriod" value="300"/>
<!-- 连接池中最少连接数,当连接数==最少连接数,即便有空闲连接,也不移出连接-->
<property name="minPoolSize" value="10"/>
<!-- 从连接池中获取连接的超时时间 ,单位:毫秒,超时后会报错,0为一直等待,默认为0 -->
<property name="checkoutTimeout" value="1000"/>
<!-- 连接池中,Statement被缓存的最大值,以便下次使用时直接取出-->
<property name="maxStatements" value="2000"/>
<!-- 连接池中,每一个连接缓存Statement的最大值,以便下次使用时直接取出-->
<property name="maxStatementsPerConnection" value="20"/>
<!--获取连接失败时,重试次数,默认值:30-->
<property name="acquireRetryAttempts" value="99999"/>
<!--获取连接失败,重试获取连接的时间间隔,单位:毫秒,默认值:1000-->
<property name="acquireRetryDelay" value="10000"/>
<!--连接关闭时,未提交的,自动提交,默认值为:false,即为回滚事务-->
<property name="autoCommitOnClose" value="true"/>
<!--数据库表名,通过查询(select * from 表名)测试数据库连接是否正常,已存在该表,则不能有数据,不存在该表,C3PO会建表-->
<property name="automaticTestTable" value="C3P0_CONNECT_TEST"/>
<!--定义一个查询SQL,用于数据库连接是否正常,如果定义了automaticTestTable属性,本属性被忽略-->
<property name="preferredTestQuery" value=" select 1 from dual"/>
<!--当连接被添加到连接池后,测试连接的可用性,默认值:false-->
<property name="testConnectionOnCheckin" value="true"/>
<!--如果设置为true,每次从池中取一个连接,将做一下测试,使用automaticTestTable 或者 preferredTestQuery,做一条查询语句.看看连接好不好用,不好用,就关闭它,重新从池中拿一个.-->
<property name="testConnectionOnCheckout" value="false"/>
<!--true:当获取连接出现异常时,标识连接池不可用,并不再重试连接数据库-->
<!--false: 当获取连接出现异常时,下次被调用时继续获取连接-->
<property name="breakAfterAcquireFailure" value="false"/>
<!--连接的最长存活时间,单位:秒-->
<property name="maxConnectionAge" value="3600"/>
<!--连接未返回给连接池的超时时间,一般用于应用未关闭连接,长期占用时处理-->
<property name="unreturnedConnectionTimeout" value="60"/>
</bean>
推荐阅读
-
sqlserverdriver配置方法 jdbc连接sqlserver
-
配置数据源
-
Spring Boot项目添加外部Jar包以及配置多数据源的完整步骤
-
VS2019添加Link to SQL类之后,LinqDataSource配置数据源没有可选项
-
ssm项目配置多个数据源(看到最后,最后是重点)
-
荐 Java——数据库编程JDBC之数据库连接池技术(C3P0与Druid,提供了Druid的工具类)
-
Spring boot如何快速的配置多个Redis数据源
-
SpringBoot Mybatis如何配置多数据源并分包
-
037.[转] springboot 配置多个数据源
-
SpringBoot整合JPA数据源方法及配置解析