240717班级,工业化控制系统,煤矿相关行业,昆仑系统
Administrator
2024-11-07 96e93f6a525896ece8dc35ff4a3c3f02fffd577a
Server/ÍõçûÔª/code/MysqlConn.h
@@ -1,63 +1,54 @@
#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;
};