连接池

原创 2016年08月31日 01:22:54

连接池

常用连接池:

c3p0和dbcp的区别:

  • c3p0:—–>一次创建100个连接放在这,用的时候直接调用
  • dbcp:—–>一次创建100个连接,自己一点点减少,他的底层策略是以最少的代价,去支撑你的应用,先给你创建100个,看你用不完了,5个5个的减少,降到最低。

连接池虽然底层管理的机制不同,无外乎,根源就是,通过连接池,大幅度去优化程序获取数据库连接的速度,从而提高程序执行的效率


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

  • BoneCP 是一个开源的快速的 JDBC 连接池。BoneCP很小,只有四十几K(运行时需要log4j和Google Collections的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。另外个人觉得 BoneCP 有个缺点是,JDBC驱动的加载是在连接池之外的,这样在一些应用服务器的配置上就不够灵活。当然,体积小并不是 BoneCP 优秀的原因,BoneCP 到底有什么突出的地方呢,请看看性能测试报告。

  • DBCP (Database Connection Pool)是一个依赖Jakarta commons-pool对象池机制的数据库连接池,Tomcat的数据源使用的就是DBCP。目前 DBCP 有两个版本分别是 1.3 和 1.4。1.3 版本对应的是 JDK 1.4-1.5 和 JDBC 3,而1.4 版本对应 JDK 1.6 和 JDBC 4。因此在选择版本的时候要看看你用的是什么 JDK 版本了,功能上倒是没有什么区别。

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


配置步骤:


  1. 新建一个java项目

  2. 在该java项目下创建一个lib文件夹,引入hibernate的jar包,将mysql的JDBC jar包也引入

  3. 创建一个hibernate_cfg.xml文件

  4. 新建一个测试的类C3P0Test.java(初始化hibernate)


commons-dbcp2-2.0.jar是dbcp连接池的jar包,只支持jdbc1.7版本以上的

数据库连接池的好处

对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况...
  • yzllz001
  • yzllz001
  • 2017年02月03日 11:30
  • 3761

Java数据库连接池实现原理

一般来说,Java应用程序访问数据库的过程是:   ①装载数据库驱动程序;   ②通过jdbc建立数据库连接;   ③访问数据库,执行sql语句;   ④断开数据库连接。 public class ...
  • tuke_tuke
  • tuke_tuke
  • 2016年05月29日 16:33
  • 12601

浅谈MyBatis3连接池

MyBatis3连接池分析
  • u012345283
  • u012345283
  • 2014年08月13日 16:48
  • 3799

十七、SpringBoot配置连接池

内置的连接池目前Spring Boot中默认支持的连接池有dbcp,dbcp2, tomcat, hikari三种连接池。 数据库连接可以使用DataSource池进行自动配置。 由于Tomcat数...
  • L_Sail
  • L_Sail
  • 2017年04月18日 22:25
  • 682

三种数据库连接池的配置及使用(For JDBC)

三种开源数据源c3p0,DBCP以及Tomcat内置数据源(DBCP)的使用简介,
  • u012802702
  • u012802702
  • 2016年04月15日 09:26
  • 8941

java数据库连接池配置的几种方法

今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,希望对大家有所帮助:(已Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下面建文件夹ME...
  • lx19860203
  • lx19860203
  • 2014年01月07日 10:12
  • 2221

Java常用数据库连接池【整理】

应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪...
  • qiuzhi__ke
  • qiuzhi__ke
  • 2015年12月08日 19:43
  • 1984

mysql数据库连接池使用(二)实现自己的数据库连接池

上一个章节,我们讲了xml文件的解析框架XMLConfiguration的使用,不懂的可以参考 Apache Commons Configuration读取xml配置具体使用。 这个章节主要实现自己的...
  • qq_30739519
  • qq_30739519
  • 2016年03月19日 08:10
  • 8913

java操作mongodb(连接池)

Mongo的实例其实就是一个数据库连接池,这个连接池里默认有10个链接。我们没有必要重新实现这个链接池,但是我们可以更改这个连接池的配置。因为Mongo的实例就是一个连接池,所以,项目中最好只存在一个...
  • maosijunzi
  • maosijunzi
  • 2014年12月22日 16:47
  • 24259

linux c/c++ 后台开发之—连接池

在互联网后台开发中经常需要需要范围一些公共资源,如DB,cache, MQ, 最典型的的就是mysql, memcached, redis, 以及一些代理服务; 通常在高并发,高访问量的情况下,起停...
  • coder_yi_liu
  • coder_yi_liu
  • 2016年04月15日 19:03
  • 1776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:连接池
举报原因:
原因补充:

(最多只允许输入30个字)