Java数据库连接池学习
来源:互联网 发布:电源网络二合一防雷器 编辑:程序博客网 时间:2024/05/16 06:44
数据库连接池的原理是:
连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。
现在常用的开源数据库连接池主要有c3p0、dbcp、proxool三种,其中:
Spring 推荐使用dbcp;
Hibernate 推荐使用c3p0和proxool;
1、 DBCP:Apache
DBCP(DataBase connection pool)数据库连接池。是Apache上的一个 java连接池项目,也是 tomcat使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。dbcp没有自动的去回收空闲连接的功能。
2、 C3P0:
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能。目前使用它的开源项目有Hibernate,Spring等。c3p0有自动回收空闲连接功能。
3、 Proxool:Sourceforge
Proxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。
对比:
1> 相同时间内同等量的线程数和循环次数下:通过对三个连接池的三个标志性性能测试参数(Average,median,90%Line)进行比较发现:性能dbcp<=c3p0<proxool;
2> 不同情况下的同一数据库连接池测试:通过观察 Average,median,90%Line三个参数发
现三个连接池的稳定性(三种连接池的三个测试参数的变化情况)依次:稳定性dbcp>=c3p0>proxool。
结论:
通过对三种数据库连接池的性能测试发现,proxool和 c3p0能够更好的支持高并发,但是在稳定性方面略逊于 dpcp;
- Java数据库连接池学习
- Java数据库连接池学习
- Java数据库连接池学习
- Java数据库连接池学习
- Java数据库连接池学习
- Java数据库连接池学习
- java数据库连接池学习
- JAVA数据库连接池学习
- Java数据库连接池 学习笔记
- Druid Java 数据库连接池 学习
- Java数据库连接池 学习笔记
- Java学习笔记4-JDBC数据库连接池
- 个人学习-java-jdbc 数据库连接池
- java web学习总结39:数据库连接池
- java学习笔记 数据库连接
- Java学习之数据库连接
- 数据库连接池的学习
- 数据库连接池C3P0学习
- 不能根据errno为0与否作为判断错误的依据
- 2. 字符串变量
- c++调用约定(32位程序)
- 删除COCOS2D-X 顶部编辑框
- 互联网如何步入“傍大款”时代
- Java数据库连接池学习
- JBoss AS 7 的应用服务特性
- 前台调用类库中自定义方法关系图
- c语言之模拟时钟秒表
- 进程权限
- iOS开发一段非常强大的调试代码,自定义NSLog
- 一身“正气”的网易适不适合做社交
- 共享库的使用
- 我常用的网络测试工具