jdbc连接池

基于JDBC的应用中几乎全是围绕Connection接口展开的,必须创建一个连接Connection,此连接相当于应用和数据库之间的一个通道,并且它还是事务的边界,只有通过同一个Connection执行的SQL语句才能组成一个事务。

在一个服务器的应用中,会处理来自多个不同用户的请求,并且必须为每一个用户保持并打开一个链接(防止事务的崩溃),由于创建一个Connection的尽管实现起来简单,但对于大流量的服务器应用来说却要花费大量的时间。

为了使链接的时间尽可能的少,解决方法有以下几种:

一:为每个访问数据的servletjsp页面维护一个Connection,并保持在一个实例变量中,直到应用关闭,但这样会导致大量的多线程问题。另外对于数据库能保持的连接数代价时昂贵的,商业数据指定价格一部分时基于同时打开的连接数的。

二:最好的做法就是使用一个连接池。其优点有以下几点:

     1:创建链接的时间缩短,因为在池中链接时可以重用的。

     2:解决了多线程的问题。

     3:连接池可以指定Connection的最大连接数,使得每一个链接得到最高效的利用。

另外:由于所有的用户使用的时同样的Connection对象,因此不能依赖数据库引擎着个的限制用户对保护资源的访问,因此要为不同的用户角色组使用不同的连接池,为不同的数据帐户来创建不同的Connection对象。

 

   jdk文档中明确说明了:DataSource是一个接口,作为 DriverManager 工具的替代项,DataSource 对象是获取连接的首选方法。

实现此接口的类可以提供连接池功能。

PooledConnection类,该类为连接池管理提供钩子 (hook) 的对象。PooledConnection 对象表示到数据源的物理连接,当应用程序调用 DataSource.getConnection 方法时,它取回 Connection 对象。如果连接池已完成,则该 Connection 对象实际上是到 PooledConnection 对象的句柄,这是一个物理连接。

需要注意的是当应用调用close()方法时,并不是关闭数据库链接,而是通知其链接在池中已不再使用,然后DataSource会将该PooledConnection返回至连接池。

 

基于JDBC的应用中几乎全是围绕Connection接口展开的,必须创建一个连接Connection,此连接相当于应用和数据库之间的一个通道,并且它还是事务的边界,只有通过同一个Connection执行的SQL语句才能组成一个事务。

在一个服务器的应用中,会处理来自多个不同用户的请求,并且必须为每一个用户保持并打开一个链接(防止事务的崩溃),由于创建一个Connection的尽管实现起来简单,但对于大流量的服务器应用来说却要花费大量的时间。

为了使链接的时间尽可能的少,解决方法有以下几种:

一:为每个访问数据的servletjsp页面维护一个Connection,并保持在一个实例变量中,直到应用关闭,但这样会导致大量的多线程问题。另外对于数据库能保持的连接数代价时昂贵的,商业数据指定价格一部分时基于同时打开的连接数的。

二:最好的做法就是使用一个连接池。其优点有以下几点:

     1:创建链接的时间缩短,因为在池中链接时可以重用的。

     2:解决了多线程的问题。

     3:连接池可以指定Connection的最大连接数,使得每一个链接得到最高效的利用。

另外:由于所有的用户使用的时同样的Connection对象,因此不能依赖数据库引擎着个的限制用户对保护资源的访问,因此要为不同的用户角色组使用不同的连接池,为不同的数据帐户来创建不同的Connection对象。

 

   jdk文档中明确说明了:DataSource是一个接口,作为 DriverManager 工具的替代项,DataSource 对象是获取连接的首选方法。

实现此接口的类可以提供连接池功能。

PooledConnection类,该类为连接池管理提供钩子 (hook) 的对象。PooledConnection 对象表示到数据源的物理连接,当应用程序调用 DataSource.getConnection 方法时,它取回 Connection 对象。如果连接池已完成,则该 Connection 对象实际上是到 PooledConnection 对象的句柄,这是一个物理连接。

需要注意的是当应用调用close()方法时,并不是关闭数据库链接,而是通知其链接在池中已不再使用,然后DataSource会将该PooledConnection返回至连接池。

1

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值