Dbcp:效率高,但是安全性一般
C3p0:安全性很高,效率偏低

DBCP也是一个开源的连接池,是Apache Commons成员之一,在企业开发中也比较常见,tomcat内置的连接池。

DBCP连接池目前市面上极为高效的连接池。
DBCP连接池一秒钟可以创建并传递10万个左右的连接对象。

DBCP安全性并不高,有可能在高速运转丢失连接数据

dbcp的使用:

第一步:导入jar
需要的jar

第二步:配置配置文件
一些常见配置项:
必须项:
driverClassName----- 驱动路径
url-----数据库链接路径
username------数据库用户名,一般为root
password------数据库密码
基本项
maxActive 连接池中 最大连接数量
如果设置了50,代表最多有50个连接。
50个连接被分配出去,50个连接未归还,来第51个线程获取连接,这个线程就会进行等待

minIdle 最小空闲连接

如果连接池有一段时间未有线程来访问,这时连接池就是空闲状态。

连接池最少的连接保有量

maxIdle 最大空闲连接

连接池最大的连接保有量

initialSize 初始化连接
连接池在创建之初,所拥有的连接数量

优化配置(扩展)
logAbandoned 连接被泄露时是否打印
removeAbandoned 是否自动回收超时连接
removeAbandonedTimeout 超时时间(以秒数为单位)
maxWait 超时等待时间以毫秒为单位
timeBetweenEvictionRunsMillis 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位
30000
numTestsPerEvictionRun 在每次空闲连接回收器线程(如果有)运行时检查的连接数量
10
minEvictableIdleTimeMillis 连接在池中保持空闲而不被空闲连接回收器线程

配置文件名称:*.properties
配置文件位置:可存放任意目录,但开发建议src根目录

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///db0814
username=root
password=123initialSize=100
maxActive=50
maxIdle=20
minIdle=60

第三步:创建工具类
dbcp工具类的创建

 public class DbcpUtil {private static DataSource ds;static{try {Properties prop = new Properties();InputStream is = DbcpUtil.class.getClassLoader().getResourceAsStream("dbconfig.properties");prop.load(is);ds = BasicDataSourceFactory.createDataSource(prop);} catch (Exception e) {e.printStackTrace();}}public static DataSource getDataSource(){return ds;}public static Connection getConnection() throws Exception{return ds.getConnection();}}

然后就可以使用该工具类进行连接数据库,进行操作了

C3P0连接池
第一步:
需要的jar:

第二步:
配置文件名称:c3p0-config.xml (固定)
配置文件位置:src (类路径)

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><!-- 默认配置,如果没有指定则使用这个配置 --><default-config><!-- 四项基本配置 --><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql:///db0814</property><property name="user">root</property><property name="password">123</property><!-- 当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒。Default: 0 --><property name="checkoutTimeout">30000</property><!--隔多少秒检查连接池的空闲连接,0表示不检查--><property name="idleConnectionTestPeriod">30</property><!-- 初始化连接数 --><property name="initialPoolSize">10</property><!-- 连接的最大空闲时间,默认为0秒、不会关闭任何连接。设置30秒,30秒到期后,连接若未使用就会被关闭 --><property name="maxIdleTime">30</property><!-- 池中最多的连接存放数目 --><property name="maxPoolSize">100</property><!-- 池中最少的连接存放数目 --><property name="minPoolSize">10</property><property name="maxStatements">200</property><user-overrides user="test-user"><property name="maxPoolSize">10</property><property name="minPoolSize">1</property><property name="maxStatements">0</property></user-overrides></default-config><named-config name="offcn"><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql:///db01</property><property name="user">root</property><property name="password">123</property><property name="acquireIncrement">5</property><property name="initialPoolSize">20</property><property name="minPoolSize">10</property><property name="maxPoolSize">40</property><property name="maxStatements">0</property><property name="maxStatementsPerConnection">5</property></named-config>
</c3p0-config>

第三步:
写工具类:

public class C3P0Util {private static DataSource ds;static{ds = new ComboPooledDataSource();}public static DataSource getDataSource(){return ds;}public static Connection getConnection() throws Exception{return ds.getConnection();}
}

dbcp与c3po连接池相关推荐

  1. 使用DBCP配置JDBC连接池

    使用DBCP配置JDBC连接池 1.DBCP简介 DBCP(DataBase connection pool),数据库连接池.是 apache 上的一个 java 连接池项目,也是 tomcat 使用 ...

  2. C3PO连接池与Druid连接池的使用

    C3PO 1.导入jar包:c3p0-0.9.5.2.jar 和mchange-commons-java-0.2.12.jar 2.导入配置文件到 src 目录下: <c3p0-config&g ...

  3. spring连接jdbc_在Spring JDBC中添加C3PO连接池

    spring连接jdbc 连接池是一种操作,其中系统会预先初始化将来要使用的连接. 这样做是因为在使用时创建连接是一项昂贵的操作. 在这篇文章中,我们将学习如何在Spring JDBC中创建C3P0连 ...

  4. 在Spring JDBC中添加C3PO连接池

    连接池是一种操作,其中系统会预先初始化将来要使用的连接. 这样做是因为在使用时创建连接是一项昂贵的操作. 在本文中,我们将学习如何在Spring JDBC中创建C3P0连接池(某人未使用休眠). Po ...

  5. 记录一个c3po连接池APPARENT DEADLOCK解决方法

    在使用c3p0数据池时,如果连接池参数配置不当,可能会引发一个意想不到的问题. 数据库:Oracle c3p0版本:0.9.5.2 数据源配置: application.xml <bean id ...

  6. C3PO连接池配置及其详解

     一.配置 <c3p0-config>        <default-config>        <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数. ...

  7. spring 使用c3po连接池

    http://blog.csdn.net/liangwenmail/article/details/47667237 http://blog.csdn.net/u010900754/article/d ...

  8. Hibernate中配置C3P0连接池

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 转自:h ...

  9. mysql 连接池的作用,数据库连接池介绍、主要参数设置、作用

    数据库连接池 dataSource 1.平时用的数据库类型?? dbcp  c3p0 2.连接池需要那些配置?? 初始化连接数量initialSize 最大连接数maxActive 最大空闲连接数ma ...

最新文章

  1. 多用户使用一台计算机可设置,《计算机应用基础》试卷(A)
  2. android studio工程特点,Android Studio的重要特性
  3. TCP协议(标志位URG、PSH,定时器,连接的建立和断开)
  4. JAVA面试要点006---.net中的委托与java中的代理模式和委托
  5. MySQL的odbc驱动 下载及安装
  6. python_csv文件使用记录
  7. xmind试用模式会过期吗_汽车发动机机油「保质期」概念解析:机油真的会过期吗?...
  8. Hibernate二级缓存
  9. X.U.S.T的《自己搭建IIS找ASP程序漏洞》发表在《黑客X档案》,稿费捐给希望工程
  10. 无限打开计算机cmd,影子系统无限蓝屏cmd怎么解决
  11. 《系统工程理论与实践》Latex 模板使用教程
  12. 做快乐的程序员 - 李战 在淘宝网的一次讲座
  13. 京东首页静态页面html+css
  14. C语言修改dos窗口的大小
  15. java exls_java excel类
  16. 未来计算机作文英语,未来的机器人英语作文(精选5篇)
  17. 腾达怎么弄虚拟服务器,腾达(Tenda)路由器端口映射设置方法
  18. 常用电子元器件应用要点及识别方法
  19. AWS S3 挂载到EC2
  20. 点对点网络与广播式网络的区别

热门文章

  1. 整理:数据库设计的六个阶段详解
  2. li 图片错位 浮动_css浮动导致错位怎么解决?
  3. 非常简单的一个块设备驱动,simp_blkdev,2.6.31之后的变化
  4. 2018-2-22 《啊哈,算法》再练习广度优先搜索,题:炸怪兽, 2-23改用深度优先搜索。宝岛探险(广度,深度,及地图着色)2-24水管工游戏,2-25测试水管工代码...
  5. Animator之RootMotion
  6. 层层恐惧3DM免安装版(未加密)
  7. java inflater_inflater.inflate()的参数含义
  8. 2013腾讯编程马拉松初赛第〇场(3月20日)(HDU 4500 4501 4502 4503 4504)
  9. ChapterTwo---Java基本语法:变量、运算符与流程控制(上)
  10. 考研路上的那些一战二战三战成功与失败的故事系列之三