JDBC与连接池的区别

JDBC与连接池的区别
JDBC:是连接数据库的最基本的方式,首先加载jdbc驱动程序,然后建立数据库连接Connection,创建执行SQL的语句Statenment,处理执行结构ResultSet,最后释放资源。这种方式每次和数据库连接时,都需要实例一下连接数据的方法和类。

  • 例如:在一个项目中需要多个连接,如果一直获取连接,断开连接,这种方式比较浪费资源的,其实我们可以创建一个 池子。然后可以用这个池子来管理Connection,这样我们就不用自己来创建Connection。我们就可以通过池来获取Connection对象,当使用完Connection后,在调用Connection.close()方法关闭(这里其实并不是真的关闭),而是把Connection归还到池子中。池子就可以在利用这个Connection对象了。这样就可以重复使用Connection,防止了资源的浪费。

数据库连接池(c3p0连接池)
数据库连接池的基本思想就是给数据库连接建立一个“缓冲的池子”,预先在池子中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池子”中取出一个,使用完后在放回去。我们可以设定连接池最大连接数来防止系统无尽的与数据库连接。我们还可以通过连接池的管理机制监视数据库的连接数量,使用情况,为系统开发,测试及性能调整提供依据。

数据库连接池的原理
第一步,连接池的建立。一般系统初始化时,连接池会根据系统配置建立,并在池中创建了几个连接对象,以便使用时能从连接池中获取。连接池中的连接不能随意的创建和关闭,为了避免连接随意建立和关闭造成系统的开销。

第二步,连接池的管理。连接池管理策略是连接池机制核心,连接池内分配和释放对系统的性能有很大的影响。管理策略是:当客户请求数据库连接时,首先查看连接池中是否有空闲的连接,如果存在空闲连接,则将连接分配给客户使用;如果没有空闲连接,则查看当前所开的连接数是否已经达到最大的连接数,如果没有达到就重新创建一个连接给请求的客户;如果达到就按设定的最大时间进行等待,如果超出最大等待时间,则抛出异常给客户。
当客户释放数据库连接时,先判断该连接的引用次数是否超过规定值,如果超过就从连接池中删除该连接,否则保留为其他客户服务。该策略保证了数据库连接有效的复用,避免频繁的建立,释放连接所带来的系统资源的开销。

第三步,连接池的关闭 。当应用程序退出时,关闭连接池中的所有连接,释放连接池相关的资源,该过程正好与创建相反。

连接池的优点
1,减少连接创建时间。连接池中的连接已准备好的,可重复使用的,获取后可以直接使用访问数据库,因此减少了连接创建的次数和时间。
2,简化编程模式。当使用连接池时,每一个单独的线程能够创建一个自己的JDBC连接一样操作,允许用户直接使用JDBC编程技术。
3,控制资源的使用。如果不使用连接池,每次访问访问数据库都需要创建一个连接,这样系统的稳定性受系统连接需求影响很大,很容易产生资源浪费和高负载异常。连接池能够使用性能最大化,将资源利用控制在一定的水平之下。连接池能控制池中的连接数量,增强了新系统在大量用户应用时的稳定性 。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值