关于Datasource与数据库连接池的区别。
来源:互联网 发布:.net编程语言 编辑:程序博客网 时间:2024/06/01 18:38
刚开始搞不太清楚这两者的关系 现在查阅多方资料后 自己整理思路。
数据库连接有两种方式:
1 :直连数据库方式
当调用DataSource.getConnection()时,其实它调用的是DriverManager.getConnection(url, user, password)来获取一个Connection,Connection使用完后被close,断开与数据库的连接,我们称这总方式是直连数据库,因为每次都需要重新建立与数据库之间的连接,而并没有把之前的Connection保留供下次使用.
2:池化连接方式
1.可以说这种方式就是使用了连接池技术.DataSource内部封装了一个连接池,当你获取DataSource的时候,它已经敲敲的与数据库建立了多个Connection,并将这些Connection放入了连接池,此时调用DataSource.getConnection()它从连接池里取一个Connection返回,Connection使用完后被close,但这个close并不是真正的与数据库断开连接,而是告诉连接池"我"已经被使用完,"你"可以把我分配给其它"人"使用了.就这样连接池里的Connection被循环利用,避免了每次获取Connection时重新去连接数据库.
对DataSource的两种实现方式已经介绍完毕,现在知道DataSource与连接池之间的是关系而不是区别了吧,因为DataSource与连接池根本就不是同一类型的东西,只有同一类型的东西才存在区别,例如:oracle与db2都是数据库,它们才存在区别.
DataSource与连接池的关系是:DataSource利用连接池缓存Connection,以达到系统效率的提升,资源的重复利用.
而连接池它可以单独存在,不需要依靠DataSource来获取连接,你可以直接调用连接池提供的方法来获取连接.
目前大多数应用服务器都支持池化连接方式的DataSource.
常用的连接池有c3p0,dbcp,Proxool...
一般场景:JNDI-> DataSource->连接池(c3p0,dbcp,Proxool等)->DriverManager->connection
- 关于Datasource与数据库连接池的区别。
- dataSource数据库连接池的使用
- 数据库连接datasource的配置
- DataSource,数据库连接池
- 数据库连接池-DataSource实现
- 数据库连接池Datasource
- 数据库连接池DataSource
- 030 DBUtils工具类与DataSource数据库连接池
- proxool 数据库连接池 取得datasource
- XA Datasource 与 Non-XA Datasource 区别
- 通过DataSource创建新的数据库连接
- JNDI java:comp/env/jdbc/datasource 与 jdbc/datasource 的区别
- 底层解惑-jndi与数据库连接池的联系与区别
- 配置datasource三种方式 数据库连接池 .
- 配置datasource三种方式 数据库连接池 .
- 数据库连接池 dbcp与c3p0的使用区别
- DataSource和SessionFactory的区别
- 数据库连接池DBCP框架的研究以及源代码分析二:寻找真正的DataSource
- 关于Dos命令的使用简介
- 嵌入式 linux编程中自定义LOG宏示例
- 危险代码:内存中的Java类和对象为何变得不安全—Part4
- 在线算法学习
- ZOJ-2554
- 关于Datasource与数据库连接池的区别。
- 黑马程序员------- 抽象类和接口-------
- XCode 同一Project创建多个target
- 剑指OFFER之队列
- 用Python和Pygame写游戏-从入门到精通(3)
- 【单步调试】 VC
- 梦想从这里开始,退一步海阔天空
- 文本框的长度限制,和类别
- 剑指OFFER之最小堆篇