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