连接池的原理是什么?工作原理是什么?

连接池这一概念想必对于程序员来说并不陌生了,毕竟经常会在连接数据库的时候使用到的,那么大家了解连接池的原理是什么吗?知道它的工作原理吗?

首先要明确连接池技术的核心思想就是连接的复用,就是希望建立一个数据库连接池及一套连接使用、分配和管理策略,让该连接池中的连接可以获得更加高效、安全的复用,主要是避免了数据库连接频繁的建立、关闭的额外开销。

其次,需要了解的是连接池的工作原理主要是由三部分组成的,分别是连接池的建立、连接池中连接的使用管理和连接池的关闭。

连接池的建立

通常是在系统初始化的时候,连接池就会根据系统的配置建立,还会在池中创建几个待连接的对象,以便使用的时候可以从连接池里面获取。连接池中的连接是不能随意创建和关闭的,这样可以有效避免连接随意建立和关闭造成的系统开销。其实Java里面也提供了很多容器类可以方便的构建连接池,例如Vector、Stack等。

连接池的管理

连接池管理策略也是连接池机制的核心,因为连接池内连接的分配和释放对系统的性能是存在很大的影响。究其管理策略就是:

每当客户请求数据库连接的时候,首先就要查看连接池里面是不是有空闲连接,如果是存在空闲连接,就会把连接分配给到客户去使用;如果没有空闲连接,则查看当前所开的连接数是否已经达到最大连接数,如果没达到就会重新创建一个连接给到请求的客户;如果已经达到就按设定的最大等待时间去进行等待,要是超出了最大的等待时间,就抛出异常给客户。当客户释放数据库连接的时候,先要判断该连接的引用次数是不是已经超过了规定值,如果是超过就从连接池里面删除掉该连接,否则就保留着,去为其他客户服务。

连接池的关闭

在应用程序退出时,关闭了连接池中所有的连接,释放连接池相关的资源,过个程正好与创建相反了。

连接池的原理  工作原理

数据库连接池的主要操作步骤如下所示:

1.建立数据库连接池对象即服务器启动。

2.按照事先指定的参数创建初始数量的数据库连接,即空闲连接数。

3.对于一个数据库访问请求,可以直接从连接池中得到一个连接。如果是数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),就会建一个新的数据库连接。

4.存取数据库。

5.关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列里面去。)。

6.释放数据库连接池对象。

好了,以上就是本篇文章的所有内容了,还想了解更多java常见问答知识,记得关注本站消息哦,更多精彩内容等你来获取!

推荐阅读:

连接池是什么?连接池有什么用?好处是什么?

java线程池参数设置原则,如何设置线程池参数比较合理?