#pragma once #include #include #include #include #include #include #include #include using namespace sql; class DBPool { public: DBPool(); ~DBPool(); void InitPool(); Connection* GetConnection(); void ReleaseConnection(Connection *conn); private: //init DB pool void InitConnection(int initSize); // create a connection Connection* CreateConnection(); //destory connection void DestoryConnection(Connection *conn); //destory db pool void DestoryConnPool(); private: string user; string password; string url; string database; int maxSize; int curSize; Driver* driver; //sql driver (the sql will free it) list connList; //create conn list std::mutex m_mutex; };