#pragma once #include #include class MySqlException : public std::runtime_error { public: MySqlException() : std::runtime_error("MySQL error!") {} MySqlException(const std::string& msg) : std::runtime_error(msg.c_str()) {} }; class Database { private: static sql::Driver* driver; static sql::Connection* con; static sql::Properties props; static std::string database; public: static void Connect(const std::string& host, const std::string& database, const std::string& username, const std::string& password); static void Connect(); static void Destroy(std::string source = "", bool log = true); static sql::Statement* CreateStmt(); static sql::PreparedStatement* CreatePreppedStmt(const std::string& query); static void Commit(); static bool GetAutoCommit(); static void SetAutoCommit(bool value); static std::string GetDatabase() { return database; } static sql::Properties GetProperties() { return props; } };