DBPool.h 969 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include <mysql/mysql_connection.h>
  3. #include <mysql/mysql_driver.h>
  4. #include <mysql/cppconn/exception.h>
  5. #include <mysql/cppconn/driver.h>
  6. #include <mysql/cppconn/connection.h>
  7. #include <mysql/cppconn/resultset.h>
  8. #include <mysql/cppconn/prepared_statement.h>
  9. #include <mysql/cppconn/statement.h>
  10. using namespace sql;
  11. class DBPool
  12. {
  13. public:
  14. DBPool();
  15. ~DBPool();
  16. void InitPool();
  17. Connection* GetConnection();
  18. void ReleaseConnection(Connection *conn);
  19. private:
  20. //init DB pool
  21. void InitConnection(int initSize);
  22. // create a connection
  23. Connection* CreateConnection();
  24. //destory connection
  25. void DestoryConnection(Connection *conn);
  26. //destory db pool
  27. void DestoryConnPool();
  28. private:
  29. string user;
  30. string password;
  31. string url;
  32. string database;
  33. int maxSize;
  34. int curSize;
  35. Driver* driver; //sql driver (the sql will free it)
  36. list<Connection*> connList; //create conn list
  37. std::mutex m_mutex;
  38. };