为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数据库连接池

2017-09-02 2页 doc 12KB 25阅读

用户头像

is_769254

暂无简介

举报
数据库连接池数据库连接池 前面我们用单例模式写过JDBC连接工具类,现在我们来数落一下这个工具类的优缺点。 优点:不用每次创建Connection对象,节省了开销; 缺点:大量用户访问的时候,会有线程阻塞的问题,影响了并发。 上面已经做到了开销的节省,需要我们来改进的是 解决并发的问题。 我们可以在启动的时候创建多个Connection对象,把这些对象放进一个集合中,以后需要连接对象时,就从该集合中取一个对象。 上面这种解决方案,就是我们业界 经常使用的连接池。连接池解决了反复创建、销毁对象,并解决了并发的难题。 连接池的逻...
数据库连接池
数据库连接池 前面我们用单例模式写过JDBC连接工具类,现在我们来数落一下这个工具类的优缺点。 优点:不用每次创建Connection对象,节省了开销; 缺点:大量用户访问的时候,会有线程阻塞的问,影响了并发。 上面已经做到了开销的节省,需要我们来改进的是 解决并发的问题。 我们可以在启动的时候创建多个Connection对象,把这些对象放进一个集合中,以后需要连接对象时,就从该集合中取一个对象。 上面这种解决,就是我们业界 经常使用的连接池。连接池解决了反复创建、销毁对象,并解决了并发的难题。 连接池的逻辑思维: 总的意思就是:我们访问数据库时,从连接池中取一个Connection对象;Connection对象使用完之后,我们就要把这个Connection对象还给连接池。也可以理解为从集合对象中取一个值 一般来说,一个连接池有以下几个属性: 1、集合对象。如list、vector,用于保存创建的Connection对象; 2、初始大小 m。也就是启动的时候创建多少个连接,保存在集合对象中; 3、最大连接数 n。也就是集合对象中最多保存多少个对象; 4、每次增加数j。当从集合中取Connection对象时,我们需要去判断集合中的链接对象是否超过最大连接数,如果没超过,则创建j个连接; 5、正在被使用的连接数 k。 也就是有多少个没还给连接池的Connection对象; 1、初始化连接。创建m个Connection对象,存放在集合对象中。 2、获取连接对象。从连接池中取Connection对象,分以下几种情况: (1)连接池中的初始化Connection对象没被用完的情况:那我们可以直接从连接池中取一个Connection对象,并把该对象从集合对象中删除;也就是 K < m 时,直接获得连接对象,并把该对象从集合对象中删除,并把 K+1; (2)连接池中的初始化Connection对象被用完的情况:如果被用完,先判断正在被使用的连接数 k 是否大于最大数,也就是 k >= m 并且 k < n 时,我们创建 j个连接,把这些连接对象放入集合对象中,并把 K+1; (3)如果大于最大连接数,就等待一会再取/或者直接返回客户端,提示连接数不够;也就是 k >= n 时,可以等待一会再获取连接,或者返回类似“连接超时”的信息给客户端。 3、释放连接对象。返还对象的时候,我们要判断正在被使用的Connection对象是不是大于初始化大小, (1)如果当前使用连接数k 大于初始化的,就直接关闭Connection对象。即 k >= m 时,关闭连接, k - 1。 (2)如果小于初始化的,就把这个Connection对象增加到集合对象中。即 k < m 时,把连接存放到集合对象中,k - 1; 缺点:内存占用比较多,内存中最少保存了初始化数目的Connection对象; 优点:解决了重复创建、销毁的开销问题,解决了并发问题。 也就是以空间换时间。
/
本文档为【数据库连接池】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索