求高手详细讲解下 连接池与数据源 分别起什么作用

八个万 2009-03-11 10:53:06
连接池与数据源 分别起什么作用呢?
...全文
1391 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
行舟 2009-03-11
  • 打赏
  • 举报
回复
不好意思:是数据库连接池非数据池
如果你不用连接池,也可以跟数据连接·
这样做可以降偶········
行舟 2009-03-11
  • 打赏
  • 举报
回复
做法:
数据源-->数据库连接实例-->放入数据池
用户:
连接数据库-->去数据池中取数据库连接
八个万 2009-03-11
  • 打赏
  • 举报
回复
在线等 请高手帮忙解答。。。
guobaiya 2009-03-11
  • 打赏
  • 举报
回复
不错!
八个万 2009-03-11
  • 打赏
  • 举报
回复
谢谢解答 我还有些疑惑
既然连接池已经能取得与数据库的连接了 那数据源可以不要吧? 要的话又起什么作用呢
M_song 2009-03-11
  • 打赏
  • 举报
回复
通常使用的时候,要先配置数据源,然后配置连接池。。
zxfqingtian807 2009-03-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Johnson_Hong 的回复:]
数据库连接池是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应在请求队列中排队等待。并且应用程序可根据池中连接的使用率,动态增加或减少池中的连接数。当关闭连接操作时,连接并不真正的关闭,而是返回到连接池中作为空闲连接在后面继续使用,连接池技术尽解决了数据库连接频繁打开关闭所带来的性能问题。


[/Quote]
有理
Johnson_Hong 2009-03-11
  • 打赏
  • 举报
回复
数据库连接池是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应在请求队列中排队等待。并且应用程序可根据池中连接的使用率,动态增加或减少池中的连接数。当关闭连接操作时,连接并不真正的关闭,而是返回到连接池中作为空闲连接在后面继续使用,连接池技术尽解决了数据库连接频繁打开关闭所带来的性能问题。


DataSource 接口由驱动程序供应商实现。共有三种类型的实现:

基本实现 - 生成标准 Connection 对象
连接池实现 - 生成自动参与连接池的 Connection 对象。此实现与中间层连接池管理器一起使用。
分布式事务实现 - 生成一个 Connection 对象,该对象可用于分布式事务,并且几乎始终参与连接池。此实现与中间层事务管理器一起使用,并且几乎始终与连接池管理器一起使用。
DataSource 对象的属性在需要时可以修改。例如,如果将数据源移动到另一个服务器,则可更改与服务器相关的属性。其优点是,因为可以更改数据源的属性,所以任何访问该数据源的代码都无需更改。
Sou2012 2009-03-11
  • 打赏
  • 举报
回复
为了性能
ameyume 2009-03-11
  • 打赏
  • 举报
回复
转自:http://www.programfan.com/club/showpost.asp?id=12762
或许能够解答楼主的问题。
共同学习下。

【steedhorse】:
连接池维护着一个连接,而每一个连接,当然是连接着某个数据源。

【steedhorse】:
打错了,应该是“连接池维护着一些连接”。

【brooksychen】:
数据源是指数据的来源,比如数据库。
连接是指这样一个“池子”,池子中的每个东西都是连接数据源的一个“连接”,这样别人想连接数据源的时候可以从这个“池子”里取,用完以后再放回来供以后其他想使用的人使用。

【daniel_kaka】:

我们一般说的数据源指的就是数据库~

比较形象点的说,连接池就像数据源的代理人,
如我们需要连接(connection)直接找他(连接池)要就可以了,不需要找数据源要;
不用的连接也是直接还给连接池~~

也就是有了连接池,我们没必要直接找数据源打交道了~
连接池在你的程序所在的机器内存,数据源不一定~~
并且数据源和连接池会保持一定数量的连接~
这样我们访问数据库的时候就不需要找数据源要连接,
直接在本地内存中取得连接,可以提高程序的性能~~

【qisamuelzhang】:
数据源的存在是为了抽象。比如数据库、Excel表格甚至是文本文件都可以作为原始数据,通过数据源抽象并提供统一的接口。

连结池的存在是为了效率,因为实例化一个连接很耗费资源,而连接又有可重用的特征,所以可以把一定数量的连接放在连结池里面以提高效率。

【baobao28】:
楼上说的都那么抽象,让我用我的自身理解方式说给你
每个连接好比水站的分水管,连接池好比水站,水站的源头好比数据库。
连接池可以控制分水管的数量等其他行为。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧