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

2,java的3种数据库连接池用哪个好
1 dbcpdbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧。这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性有所下降,此外不提供连接池监控2 c3p0c3p0是另外一个开源的连接池,在业界也是比较有名的,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:c3p0.xml。使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证,此外不提供连接池监控。3 proxoolproxool这个连接池可能用到的人比较少,但也有一定知名度,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:proxool.xml。使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性有一定问题c3p0是一个开源的jdbc连接池,它实现了数据源和jndi绑定,支持jdbc3规范和jdbc2的标准扩展。目前使用它的开源项目有hibernate,spring等。dbcp(database connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。c3p0与dbcp区别: dbcp没有自动的去回收空闲连接的功能 c3p0有自动回收空闲连接功能 两者主要是对数据连接的处理方式不同!c3p0提供最大空闲时间,dbcp提供最大连接数。 前者当连接超过最大空闲连接时间时,当前连接就会被断掉。dbcp当连接数超过最大连接数时,所有连接都会被断开。
3,几个主流的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;
4,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
5,为什么说Druid是最好的数据库连接池
1、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。2、数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。3、SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。4、扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。现在常用的开源数据库连接池主要有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<=c3p02> 不同情况下的同一数据库连接池测试:通过观察 average,median,90%line三个参数发 现三个连接池的稳定性(三种连接池的三个测试参数的变化情况)依次:稳定性dbcp>=c3p0>proxool。 结论: 通过对三种数据库连接池的性能测试发现,proxool和 c3p0能够更好的支持高并发,但是在稳定性方面略逊于 dpcp;
文章TAG:
下面哪个数据库连接池 java的3种数据库连接池用哪个好