玖叶教程网

前端编程开发入门

Mysql下篇 #ifndef _MYSQL(mysql download)

Mysql下篇

#ifndef _MYSQL_CONNECTION_

#define _MYSQL_CONNECTION_

//c++

#include

#include

#include

#include

#include

//mysql driver

#include

#include

//mysql execute

#include

#include

#include

#include

#include

//thread mutex

#include

using namespace sql;

using delFunc = std::function;

class ConnectionPool

{

public:

//获取数据库连接池对象 static单例模式

static ConnectionPool* getInstance();

//得到一条连接

auto getConnect()->std::shared_ptr;

//归还一条连接

auto retConnect(std::shared_ptr &ret)->void;

~ConnectionPool();


private:

ConnectionPool(std::string name, std::string pwd, std::string nurl, int maxSize);

//初始化连接池

auto initConnectPool(int initialSize)->void;

//毁坏连接池

auto destoryPool()->void;

//destory one connection

auto destoryOneConn()->void;

//扩大数据库连接池

auto expandPool(int size)->void;

//缩小数据库连接池

auto reducePool(int size)->void;

//add conn

auto addConn(int size)->void;

public:

//get size

auto getPoolSize()->int;

private:

std::string username; //帐号

std::string password; //密码

std::string url; //连接url

int poolSize; //pool size

//存放所有连接

std::list> conList;

static ConnectionPool *pool;//连接池对象

std::mutex lock;//锁

Driver *driver;//mysql driver

};


#endif

mysql_connect.cpp

#include

#include

#include

#include "mysql_connect.h"

ConnectionPool*

ConnectionPool::pool = nullptr;

//private

//构造函数

ConnectionPool::ConnectionPool(std::string name, std::string pwd, std::string nur

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言