From 0a06bde4b42e06f9813f74d6f4104864d8d19810 Mon Sep 17 00:00:00 2001 From: jiangkegeng <jiangkegeng> Date: 星期五, 08 十一月 2024 15:26:00 +0800 Subject: [PATCH] Merge branch 'master' of ssh://115.28.86.8:29418/~admin/昆仑_1025 --- Server/王琨元/code/MysqlConn.h | 64 +++++++++++++++++-------------- 1 files changed, 35 insertions(+), 29 deletions(-) diff --git "a/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.h" "b/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.h" index 53bb3fc..fe6d6fc 100644 --- "a/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.h" +++ "b/Server/\347\216\213\347\220\250\345\205\203/code/MysqlConn.h" @@ -2,48 +2,54 @@ #include <string> #include <WinSock2.h> -//#include <mysql.h> #include "MySQL/include/mysql.h" #include <string.h> #include <chrono> - +#include <iostream> +#include <memory> +#include <queue> +#include <mutex> +#include <condition_variable> +#include <regex> #pragma comment(lib,"./MySQL/lib/libmysql.lib") +using namespace std; class MysqlConn { public: - // 锟斤拷始锟斤拷锟斤拷锟斤拷 + // 初始化连接 MysqlConn(); - // 锟斤拷锟斤拷锟斤拷锟捷匡拷 - bool connect(std::string ip, std::string userName, std::string passwd, std::string db , int port = 3306); - // 锟酵凤拷锟斤拷源 - ~MysqlConn( ); - // 锟斤拷锟斤拷锟斤拷锟捷匡拷 ( insert update delete ) - bool update(std::string sql); - // 锟斤拷询锟斤拷锟捷匡拷 - bool query(std::string sql); - // 锟矫碉拷锟斤拷锟斤拷锟斤拷 + // 连接数据库 + //bool connect(); + // 释放资源 + ~MysqlConn(); + // 更新数据库 ( insert update delete ) + bool update(string sql); + // 查询数据库 + bool query(string sql, vector<vector<string>>& result); + bool query(string sql); + // 得到结果集 bool getResult(); - // 锟斤拷取锟斤拷锟斤拷锟斤拷锟斤拷锟街讹拷 - std::string getField(int index); - // 锟斤拷锟斤拷锟斤拷锟斤拷 + // 获取结果集的字段 + string getField(int index); + // 事务操作 bool transaction(); - // 锟结交锟斤拷锟斤拷 - bool commit( ); - // 锟斤拷锟斤拷锟截癸拷 + // 提交事务 + bool commit(); + // 事务回滚 bool rollback(); - void refreshActiveTime( ); // 刷锟铰伙拷跃时锟斤拷 - long long getActiveTime(); // 锟斤拷取锟斤拷前锟斤拷跃锟斤拷时锟斤拷锟斤拷锟斤拷 - // 锟斤拷全校锟斤拷锟接匡拷 - bool isSqlSafe(const std::string& sql); -private: - + void refreshActiveTime(); // 刷新活跃时间 + long long getActiveTime(); // 获取当前活跃的时间间隔 + // 安全校验接口 + bool isSqlSafe(const string& sql); + bool isConnected(); +protected: void freeRes(); - MYSQL* mysql_ = NULL ; - MYSQL_RES* res_ = NULL; - MYSQL_ROW row_ = nullptr; - std::chrono::steady_clock::time_point activeTime_; -}; + MYSQL* m_mysql; + MYSQL_RES* m_res; + MYSQL_ROW m_row; + chrono::steady_clock::time_point m_activeTime; +}; -- Gitblit v1.8.0