1.最常用配置

initialPoolSize:
    连接池初始化时创建的连接数,default : 3(建议使用)

minPoolSize:
    连接池保持的最小连接数,default : 3(建议使用)

maxPoolSize:
    连接池中拥有的最大连接数,如果获得新连接时会使连接总数超过这个值则不会再获取新连接,而是等待其他连接释放,所以这个值有可能会设计地很大,default : 15(建议使用)

acquireIncrement:
    连接池在无空闲连接可用时一次性创建的新数据库连接数,default : 3(建议使用)

2.管理连接池的大小和连接的生存时间

maxConnectionAge:
    配置连接的生存时间,超过这个时间的连接将由连接池自动断开丢弃掉。当然正在使用的连接不会马上断开,而是等待它close再断开。配置为0的时候则不会对连接的生存时间进行限制。default : 0 单位 s(不建议使用)

maxIdleTime:
    连接的最大空闲时间,如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接。如果为0,则永远不会断开连接,即回收此连接。default : 0 单位 s(建议使用)

maxIdleTimeExcessConnections:
    这个配置主要是为了快速减轻连接池的负载,比如连接池中连接数因为某次数据访问高峰导致创建了很多数据连接,但是后面的时间段需要的数据库连接数很少,需要快速释放,必须小于maxIdleTime。其实这个没必要配置,maxIdleTime已经配置了。default : 0 单位 s(不建议使用)

3.配置连接测试:

automaticTestTable:
    配置一个表名,连接池根据这个表名用自己的测试sql语句在这个空表上测试数据库连接,这个表只能由c3p0来使用,用户不能操作。default : null(不建议使用)

preferredTestQuery:
    与上面的automaticTestTable二者只能选一。自己实现一条SQL检测语句。default : null(建议使用)

idleConnectionTestPeriod:
    用来配置测试空闲连接的间隔时间。测试方式还是上面的两种之一,可以用来解决MySQL8小时断开连接的问题。因为它保证连接池会每隔一定时间对空闲连接进行一次测试,从而保证有效的空闲连接能每隔一定时间访问一次数据库,将于MySQL8小时无会话的状态打破。为0则不测试。default : 0(建议使用)

testConnectionOnCheckin:
    如果为true,则在close的时候测试连接的有效性。default : false(不建议使用)

testConnectionOnCheckout:
    性能消耗大。如果为true,在每次getConnection的时候都会测试,为了提高性能,尽量不要用。default : false(不建议使用)

4.配置PreparedStatement缓存:

maxStatements:
    连接池为数据源缓存的PreparedStatement的总数。由于PreparedStatement属于单个Connection,所以这个数量应该根据应用中平均连接数乘以每个连接的平均PreparedStatement来计算。同时maxStatementsPerConnection的配置无效。default : 0(不建议使用)

maxStatementsPerConnection:
    连接池为数据源单个Connection缓存的PreparedStatement数,这个配置比maxStatements更有意义,因为它缓存的服务对象是单个数据连接,如果设置的好,肯定是可以提高性能的。为0的时候不缓存。default : 0(看情况而论)

5.重连相关配置

acquireRetryAttempts:
    连接池在获得新连接失败时重试的次数,如果小于等于0则无限重试直至连接获得成功。default : 30(建议使用)

acquireRetryDelay:
    连接池在获得新连接时的间隔时间。default : 1000 单位ms(建议使用)

breakAfterAcquireFailure:
    如果为true,则当连接获取失败时自动关闭数据源,除非重新启动应用程序。所以一般不用。default : false(不建议使用)

checkoutTimeout:
    配置当连接池所有连接用完时应用程序getConnection的等待时间。为0则无限等待直至有其他连接释放或者创建新的连接,不为0则当时间到的时候如果仍没有获得连接,则会抛出SQLException。其实就是acquireRetryAttempts*acquireRetryDelay。default : 0(与上面两个,有重复,选择其中两个都行)

6.定制管理Connection的生命周期

connectionCustomizerClassName:
    用来定制Connection的管理,比如在Connection acquire 的时候设定Connection的隔离级别,或者在Connection丢弃的时候进行资源关闭,就可以通过继承一个AbstractConnectionCustomizer来实现相关方法,配置的时候使用全类名。有点类似监听器的作用。default : null(不建议使用)

7.配置未提交的事务处理

autoCommitOnClose:
    连接池在回收数据库连接时是否自动提交事务。如果为false,则会回滚未提交的事务,如果为true,则会自动提交事务。default : false(不建议使用)

forceIgnoreUnresolvedTransactions:
    这个配置强烈不建议为true。default : false(不建议使用)一般来说事务当然由自己关闭了,为什么要让连接池来处理这种不细心问题呢?

8.配置debug和回收Connection

unreturnedConnectionTimeout:
    为0的时候要求所有的Connection在应用程序中必须关闭。如果不为0,则强制在设定的时间到达后回收Connection,所以必须小心设置,保证在回收之前所有数据库操作都能够完成。这种限制减少Connection未关闭情况的不是很适用。建议手动关闭。default : 0 单位 s(不建议使用)

debugUnreturnedConnectionStackTraces:

如果为true并且unreturnedConnectionTimeout设为大于0的值,当所有被getConnection出去的连接unreturnedConnectionTimeout时间到的时候,就会打印出堆栈信息。只能在debug模式下适用,因为打印堆栈信息会减慢getConnection的速度default : false(不建议使用)

====================打个广告,欢迎关注====================

QQ: 412425870
csdn博客:
http://blog.csdn.net/caychen
码云:
https://gitee.com/caychen/
github:
https://github.com/caychen

点击群号或者扫描二维码即可加入QQ群:

328243383(1群)



点击群号或者扫描二维码即可加入QQ群:

180479701(2群)


数据库连接池c3p0常用配置说明相关推荐

  1. c3p0 mysql 连接池配置文件_数据库连接池c3p0的使用

    原标题:数据库连接池c3p0的使用 来源:java联盟 https://mp.weixin.qq.com/s/5Tbkf8dVFfH8AvtqWl-7Xg 程序员共读整理发布,转载请联系作者获得授权 ...

  2. 数据库连接池——C3P0:数据库连接池技术

    数据库连接池 1. 概念:其实就是一个容器(集合),存放数据库连接的容器. 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接 ...

  3. Java数据库连接池c3p0和druid

    目录 一.举例解释连接池 二.c3p0 三.druid 一.举例解释连接池 一直用jdbc的我突然发现一个好东西,那就是连接池,举一个不恰当的例子来说说jdbc和连接池的区别 比如有一家餐馆,如果是j ...

  4. 通过实现ServletContextListener接口创建数据库连接池(C3P0方式)

    使用Listener步骤 1. 定义Listener实现类 2. 在web.xml中配置(或使用Annotation) 使用C3P0方式创建数据库连接池需要添加的jar包 1.c3p0-0.9.5.j ...

  5. 数据库连接池 C3p0

    数据库连接池 C3po 1 定义 本质上是个容器(集合) 存放数据库的连接容器(connection 对象) ,当系统初始化以后 容器就会创建 容器中就会申请一些连接对象 ,当用户来访问数据库的时候 ...

  6. 数据库连接池-c3p0

    一.简介 C3P0是一JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.使用它的开源项目有Hibernate.Spring等. c3p0与dbcp区别: dbcp ...

  7. 数据库连接池C3P0详细介绍

    数据库连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的 ...

  8. 数据库连接池c3p0数据库连接池

    文章目录 1.前提准备: 1.1创建数据库 1.2创建实体类对象 1.3 JDBC工具类 2.基于jdbc工具类将数据封装到实体类中 3.c3p0连接池的使用 3.1c3p0的使用步骤 3.2创建项目 ...

  9. Java 数据库连接池C3P0,德鲁伊(Druid)的详解

    博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,

最新文章

  1. 集成有MAX1169,MAX520的DAAC单片STC8G1K08机电路板
  2. 重写Oracle的wm_concat函数,自定义分隔符、排序
  3. 中南大学计算机在线考试答案,中南大学计算机考试复习题
  4. Python中的 optparse模块
  5. dc/os_DC / OS中具有Java和数据库应用程序的服务发现
  6. 一个直角三角形的两个直角边是 a,b(a≤b),其斜边是 c,且 a,b,c都是正整数。现在我们已经知道了斜边长度c,请问这个直角三角形的两个直角边的长度是什么?Java
  7. oracle 600 侯,oracle在导入数据时报600错误的解决方法
  8. HEVC/H265 解码图表,请对照代码看。
  9. [人工智能教程] 人工智能暑期课实践项目建议
  10. Dubbo下一站:Apache顶级项目
  11. MySQL错误ERROR 1366 (HY000): Incorrect string value..
  12. 设计模式学习——代理模式(Proxy Pattern)
  13. 用c#写的smtp邮件发送类
  14. php curl 错误码,php,_PHP curl 错误 :curl__errno()返回错误码6,php - phpStudy
  15. C# 静态类初始化 结构体初始化
  16. 二、Vue菜鸟小教程-vue-router的简单入门程序
  17. 蚂蚁课堂视频笔记思维导图-4期 四、微服务安全
  18. 红外遥控模块的使用方法,以及stm32代码
  19. eclipse安装翻译插件(通用)
  20. IDEA生成springboot项目的两种方式

热门文章

  1. Distort-and-Recover: Color Enhancement using Deep Reinforcement Learning
  2. 判断指定日期是否为节假日、双休日、工作日
  3. 有手机了,为什么还需要平板
  4. AIGC火出圈,将投资风口引向新方向
  5. linux做域服务器,域主机搭建,windows,linux的加域
  6. 行我所行,爱我所爱,追求自我。
  7. 10-3国际黄金最新行情趋势分析及期货原油价格涨跌操作指导
  8. 导入页面前Excel校验
  9. MATLAB图像处理学习——高通滤波(频域滤波(二))
  10. 开学季选什么牌子蓝牙耳机好?2022学生党性价比蓝牙耳机推荐