From 1db6623d40fc32a47615d947aec24c89b9528ad5 Mon Sep 17 00:00:00 2001 From: wangky <m1561510467@163.com> Date: 星期四, 07 十一月 2024 16:41:56 +0800 Subject: [PATCH] 1 --- Server/王琨元/code/MysqlConn.h | 90 ++++++++++++++++++++------------------------ 1 files changed, 41 insertions(+), 49 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 0dbbea9..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" @@ -1,63 +1,55 @@ #pragma once -#include<iostream> -#include <memory> + #include <string> -#include <mysql.h> -#include <chrono> // 时钟 -#include <fstream> +#include <WinSock2.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") -#pragma comment(lib, "./lib/libmysql.lib") // 加载数据库库文件 using namespace std; -using namespace chrono; -typedef long long ll; - class MysqlConn { -private: - // 绝对时钟 - steady_clock::time_point m_alivetime; - // 连接 - MYSQL* m_conn; - // 查询的结果集 - MYSQL_RES* m_result; - // 单记录结果集 - MYSQL_ROW m_mysqlRow; - - // 结果集释放 - void freeRes(); - // 导出某一张表中的数据 - void backupCurrentTable(const string path, const string tableName); public: - // 初始化数据库 + // 初始化连接 MysqlConn(); - // 数据库连接释放 + // 连接数据库 + //bool connect(); + // 释放资源 ~MysqlConn(); - // 连接数据库, 需提供用户 密码 数据库名称 ip 端口 - bool connect(const string user, const string passwd, \ - const string dbName, string ip, \ - const unsigned short port = 3306U); - // 更新数据库:增删改操作 - bool update(const string sql) const; + // 更新数据库 ( insert update delete ) + bool update(string sql); // 查询数据库 - bool query(const string sql); - // 遍历查询结果集 - bool getRes(); - // 获取结果集中的字段值 - string getValue(const int fieldIndex) const; - // 切换数据库 - bool selectDB(const string dbName) const; - // 建库 - //bool createDB(const string dbName) const; - // 备份某个库 - void backupCurrentDB(const string path); + bool query(string sql, vector<vector<string>>& result); + bool query(string sql); + // 得到结果集 + bool getResult(); + // 获取结果集的字段 + string getField(int index); // 事务操作 - bool transaction() const; + bool transaction(); // 提交事务 - bool commit() const; + bool commit(); // 事务回滚 - bool rollback() const; - // 刷新起始的空闲时间点 - void refreashAliveTime(); - // 计算存活总时长 - ll getAliveTime(); + bool rollback(); + + + void refreshActiveTime(); // 刷新活跃时间 + long long getActiveTime(); // 获取当前活跃的时间间隔 + // 安全校验接口 + bool isSqlSafe(const string& sql); + bool isConnected(); +protected: + void freeRes(); + MYSQL* m_mysql; + MYSQL_RES* m_res; + MYSQL_ROW m_row; + chrono::steady_clock::time_point m_activeTime; + }; -- Gitblit v1.8.0