数据库连接池概况与关键部分

2021-05-25 25582 数据库理论论文

本文作者:马琳、李阳 单位:石家庄信息工程职业学院

一、数据库连接池基本概念及工作原理

数据库连接池作为一种将链接作为资源管理的实体,此资源就是数据库的连接。连接池的基本思想就是预先设立一部分放置于内存中的固定对象以备使用。而建立一个数据库连接池,就可将链接发过去进行查询,从而来获取结果。一个链接在生命周期内所能处理的查询数据是没有限制的,通过采用连接池结束,只需从内存中取得而不用反复的建立。在内存中,连接池可对链接进行管理,使其利用率提高。

连接池一般使用过程主要有四个部分:

1、发送连接请求:连接池将按照发送请求的顺序进行排序,并一对一的对其配置给他们链接的处理对象。连接池最大的优势在于可以允许多个链接同时发送申请,而连接池可以对其进行判断。

2、对发送进行连接处理:连接池可以对列表中的使用和空闲的部分进行维护,连接池从其中空闲的部分取出链接后归还链接之前,放回使用池,使整个连接池利用率最大化。

3、取出链接环节:连接池按照上一步的操作将空闲部分的链接取出。

4、回收链接环节:当请求模块使用完毕时,将链接返回到空闲池。模块登记链接后,链接就从使用列表中去除并自动回到列表中等待新的请求。

二、数据库连接池技术关键部分

1、连接池配置:数据库连接池需要多少数量的链接这是关键所在,如放少了则整个循环受到影响,多了则浪费内存资源。配置的策略为:首先要根据硬件系统的配及软件环境的应用请求而定,最先配置出一个连接池的数量及最大配置量的链接数量,从而来判断合适的连接数。

2、并发控制:在有很多数量的线程对共享资源进行同时访问,则要考虑到线程之间的同步问题,来确保不会在访问过程中出现逻辑性错误。共享资源则为连接池,而要改变连接池的属性就要对其进行同步化处理。

3、定时检测:在连接池自我管理的过程中,通过定时地对每个链接对象的状态和连接的数量来判断完成的。管理者可以设置连接池的参数来管理连接池中的连接最大使用次数及最大空闲时间,以此来约束连接池。

4、复式连接:此种模式在复用链接中较为常见,每个数据库连接都保留其引用的数量,以此来记录连接使用者的数量。具体而言,就是采用了使用池和空闲池的技术,空闲池中的链接被分配出去之后,就可以采取复用来计算最小的链接方法。

三、数据库访问的过程

用户由ServletBeans执行数据库的访问,调用连接池类ConnectionPool的addTask()方法,addTask()执行过程为:

⑴调用ThreadPool线程中的getRequesterID()以此来得到任务申请。

⑵实例化查询任务QueryTask对象。

⑶调用ThreadPool线程池类的addTask()将查询任务对象添加到线程池中。

⑷调用ThreadPool线程池类addTAskListener()添加任务完成时间监听,过程结束后返回用户处。

监听者通过调用查询信息类SQLInformation对象的getResult()的方法得到查询数据,保存在DbInterface类中,用户通过调用DBInterface类的getQueryResult()方法得到查询结果。DbInterface类的用法如下:

⑴建立类对象。调用构造函数DBInterface,其中dbCon为连接池对象,log为日志对象,thteadPool为线程池对象。

⑵执行SQl语句。调用DBInterface的方法,DBInterface将自动SQL添加到线程中,执行完SQL线程语句将结果和异常传递给DBInterface类。

⑶调用DBInterface的方法getQueryResult()和hasNextQueryResult()得到查询结果。

⑷如运行出现异常,通过DBInterface的方法getQueryResult()和hasNextQueryResult()得到异常情况。