连接池的理解

文章目录

一,连接池的简介

二,DB连接池的认识

三,DB连接池的作用

四,图文介绍

五, Java中开源的数据库连接池

正文:

一,连接池的简介 

连接池用于创建和管理数据库连接的缓冲池技术,缓冲池中的连接可以被任何需要他们的线程使用。当一个线程需要用JDBC对一个数据库操作时,将从池中请求一个连接。当这个连接使用完毕后,将返回到连接池中,等待为其他的线程服务。

二,DB连接池的认识 

背景:1.数据库连接是一种关键的有限的昂贵的资源  。

   2.多用户的网页应用程序中| [即JAVAEE企业级]体现得尤为突出。

   3.一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。

即对于DB连接池:数据库连接池就是保存了很多数据库连接对象的对象池。

三,DB连接池的作用 

1.尽可能多地重用消耗内存的资源,节省内存。

2.提高了服务器地服务效率,能够支持更多的客户服务。

3.提高程序运行效率。

同时,可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。

- 1)最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费。

- 2)最大连接敖是连搂池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的敖据库操作。

具体实施:

1.负责分配、管理和释放数据库连接。

2.允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个

3.释放空闲时间超过最大空闲时间的数据库连接.来避免因为没有释放数据库连接而引起的数据库连接遗漏

4.能明显提高对数据库操作的性能

四,图文介绍

1.没连接池时:

2.有连接池时:

 

五, Java中开源的数据库连接池

在Java中开源的数据库连接池有以下几种:

1.C3P0,2.Proxool,3.Jakarta DBCP,4.DDConnectionBroker,5.DBPool,6.XAPool,7.Primrose,8.SmartPool,9.MiniConnectionPoolManager,10.BoneCP,11.Druid等 

而对于Druid,对我们来说是个不错的选择。

原因:

Druid不仅是一个数据库连接池,还包含一个ProxyDriver、一系列内置的JDBC组件库、一个SQL Parser。
支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等。
Druid针对Oracle和MySql做了特别优化,比如:
Oracle的PS Cache内存占用优化;
MySql的ping检测优化;
Druid提供了MySql、Oracle、Postgresql、SQL-92的SQL的完整支持,这是一个手写的高性能SQL Parser,支持Visitor模式,使得分析SQL的抽象语法树很方便。
通过Druid提供的SQL Parser可以在JDBC层拦截SQL做相应处理,比如说分库分表、审计等。Druid防御SQL注入攻击的WallFilter,就是通过Druid的SQL Parser分析语义实现的。
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值