此连接池用于管理数据库的多个连接,主要思想如下:
1)按照传入的参数起N个连接来连接数据库(参数中有最小连接数N,最大连接数M)。
2)建立一个空闲队列(初始化的N个连接放到空闲队列),一个使用队列来管理,使用的时候重空闲队列抓取一个连接,丢到使用队列,
如果空闲队列没有可用连接,并且连接数小于允许的最大连接数(<M)则创建一个新的连接,否则等待。
3)起一个守护线程,发现用过的连接,则使用队列中移除,添加到空闲队列,无效的链接则删除。
代码如下,
首先是头文件,因为导出的是DLL,文件中的RFIDAPI定义如下
#ifdef _USRDLL
#define RFIDAPI _declspec(dllexport)
#else
#define RFIDAPI _declspec(dllimport)
下面是实现文件,
为了使用方便,使用的时候,自己定义个类来初始化连接以及所使用的接口,
例如,,定义个DBinterface的类
头文件中这样写
实现文件如下
这样把头文件包含到工程,,
调用InItDBConnPool初始化连接池
然后就可以直接使用接口了
本文介绍了一个数据库连接池的实现方案,包括连接池的基本思想、关键类的设计与实现,以及如何通过连接池高效管理数据库连接。
799

被折叠的 条评论
为什么被折叠?



