java数据库连接池哪个用的多,java的3种数据库连接池用哪个好
来源:整理 编辑:黑码技术 2024-10-26 16:11:50
本文目录一览
1,java的3种数据库连接池用哪个好

2,java开发中c3p0和dbcp连接池哪个用的多啊为什么
用肯定是dbcp用的多,原因很简单,dbcp是spring自带的,c3p0还需要另外引入。至于功能是c3p0强,原因是dbcp封装了很多java数据源的参数。导致没有c3p0灵活。
3,java的3种数据库连接池用哪个好
1 dbcpdbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧。这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性有所下降,此外不提供连接池监控2 c3p0c3p0是另外一个开源的连接池,在业界也是比较有名的,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:c3p0.xml。使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证, 此外不提供连接池监控。3 proxoolproxool这个连接池可能用到的人比较少,但也有一定知名度,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:proxool.xml。使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性有一定问题,有一个需要长时间跑批的任务场景任务,同样的代码简单的说链接池是创建了很多链接放在一个池子里,你用的时候从池子里取,不用的时候放回池子里。这个池子里的链接是用各种方法创建的,其中就包括用jdbc创建的
4,几个主流的Java连接池
现在常用的开源数据库连接池主要有c3p0、dbcp、proxool三种,其中:Spring 推荐使用dbcp;Hibernate 推荐使用c3p0和proxool; 1、 DBCP:ApacheDBCP(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:SourceforgeProxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。 对比:1> 相同时间内同等量的线程数和循环次数下:通过对三个连接池的三个标志性性能测试参数(Average,median,90%Line)进行比较发现:性能dbcp<=c3p0<proxool; 2> 不同情况下的同一数据库连接池测试:通过观察 Average,median,90%Line三个参数发现三个连接池的稳定性(三种连接池的三个测试参数的变化情况)依次:稳定性dbcp>=c3p0>proxool。 结论: 通过对三种数据库连接池的性能测试发现,proxool和 c3p0能够更好的支持高并发,但是在稳定性方面略逊于 dpcp;
5,java 数据库连接池 用哪个好
简单的说链接池是创建了很多链接放在一个池子里,你用的时候从池子里取,不用的时候放回池子里。这个池子里的链接是用各种方法创建的,其中就包括用jdbc创建的是自己编的 可以引用 连接池思想就是这个啊 不过你可以下载 已经编好的连接池 上面有api 自己可以按照这个思想 就回用 了; import java.io.fileinputstream; public class connectionpool{ private vectorpool; private string url; private string username; private string password; private string driverclassname; // 连接池的大小,也就是连接池中有多少个数据库连接。 private int poolsize = 1; private static connectionpool instance =null; //私有的构造方法,禁止外部创建本类的对象。 // 使用了设计单子模式 private connectionpool(){ init(); } // 返回当前连接池的一个对象 public static connectionpool getinstance(){ if(instance==null){ instance=new connectionpool(); } return instance; } //连接池初始化方法,读取属性文件的内容,建立连接池中的初始连接 private void init(){ pool= new vector(poolsize); addconnection(); } //返回连接到连接池中 public synchronized void release(connection conn){ pool.add(conn); } // 关闭连接池中的所有数据库连接 public synchironized void closepool(){ for(int i=0;i0){ connection conn = pool.get(0); pool.remove(conn); return conn; }else{ return null; } } // 在连接池中创建初始设置的的数据库连接 private void addconnection(){ connection conn = null; for (int i=0;i
文章TAG:
java数据库连接池哪个用的多 java的3种数据库连接池用哪个好