相信很多coder到现在还没有真正明白数据源和连接池的概念,其实可以推荐去看一下javax.sql.DataSource的类注释,讲的很清楚:
这是其中的一部分
There are three types of implementations:
* <OL>
* <LI>Basic implementation -- produces a standard <code>Connection</code>
* object
* <LI>Connection pooling implementation -- produces a <code>Connection</code>
* object that will automatically participate in connection pooling. This
* implementation works with a middle-tier connection pooling manager.
* <LI>Distributed transaction implementation -- produces a
* <code>Connection</code> object that may be used for distributed
* transactions and almost always participates in connection pooling.
* This implementation works with a middle-tier
* transaction manager and almost always with a connection
* pooling manager.
* </OL>
也就是其是对于数据源来说,无非就是通过数据库用户名和密码还有数据库名去获取连接的一个地方,jdk 为我们提供了DataSource统一接口,具体数据源是由各个数据库厂商提供的,各个数据库厂商将会提供驱动包,开发的时候通过jdk提代的一个驱动管理器DriverManager来加载驱动去数据源获取一个有效的连接。
而连接池也只是数据源的实现之一,通过上面的注释可以看出来,数据源其实有三种实现:一是标准的实现,二是连接池的实现,三是分布式事务的实现。 对于第一种每次都会获取一个新的连接,而第二种将会对连接重复使用,使用后立即释放,以减少对系统内存的浪费,对于spring 有一个实现DriverManagerDataSource,它只是一个虚拟的connection pool,实际上每次连接还是要创建一个新的连接,要使用连接池,请看DriverManagerDataSource的类注释:
<p>If you need a "real" connection pool outside of a J2EE container, consider
* <a href="http://jakarta.apache.org/commons/dbcp">Apache's Jakarta Commons DBCP</a>
* or <a href="http://sourceforge.net/projects/c3p0">C3P0</a>.
* Commons DBCP's BasicDataSource and C3P0's ComboPooledDataSource are full
* connection pool beans, supporting the same basic properties as this class
* plus specific settings (such as minimal/maximal pool size etc).
推荐咱们使用jakarta的Commons DBCP还有C3P0 然后在服务器里面做相应的配置就可以使用连接池了。
dbcp没有自动的去回收空闲连接的功能c3p0有自动回收空闲连接功能
相关推荐
为什么使用连接池 数据源和连接池的概念 配置Tomcat
在tomcat中配置数据源连接池的配置方法,及jar包文件。
用数据源连接池配置/用数据源连接池配置/用数据源连接池配置/用数据源连接池配置/
commons-dbcp-1.2.2.jar commons-dbcp-1.2.2 API.chm commons-pool-1.4-src commons-pool-1.4.jar commons-pool-1.4 API.chm
数据源连接池的基本用法,配置信息,代码案例、 实现数据源的动态切换和案例 数据源连接池的基本用法,配置信息,代码案例、 实现数据源的动态切换和案例 数据源连接池的基本用法,配置信息,代码案例、 实现...
springboot+mybatis多数据源+动态数据源配置(连接池),mysql数据库,代码实现了简单的读写分离,但是不建议这种操作,建议使用数据库中间件进行读写分离,例如使用mycat进行读写分离主从热备,使用该代码对于多个...
weblogic数据源连接池的创建步骤,很快很好很方便
. 连接池基本的思想,原理 数据库连接池技术的优点: c3p0的使用
通过SpringAop实现多数据源的动态切换 并采用Druid连接池,可扩展继续增加数据库配置。
数据源与连接池的PPT JDBC,Java命名和目录服务接口
Tomcat中数据源配置连接池
连接池数据源配置:其中包括类;属性以及说明文件;很详细;让你轻松摆脱开发工具来发布工程
在GlassFish中配置数据源连接池
springboot连接池、动态配置多数据源连接池,特别适合大数据部门、数据中台服务的多数据源连接池.zip
演示用c3p0组件做连接池 演示用JNDI(jtds组件)做连接池
在WebLogic中建立数据库连接池与数据源及利用JBuilder进行测试
NULL 博文链接:https://kingxss.iteye.com/blog/1479451
Hibernate的三种连接池设置C3P0、Proxool和DBCP. 详细说明及配置方法 Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP.
Java动态代理实现数据源连接池,用代理类实现的连接池代码,绝对完整的案例,下载源码就能跑起来!Java动态代理实现数据源连接池,用代理类实现的连接池代码