240717班级,工业化控制系统,煤矿相关行业,昆仑系统
1
wangky
2024-11-07 021a2f356be7d788742eab8d9f3df1910acef616
Server/ÍõçûÔª/code/MysqlConn.h
@@ -2,45 +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);
   //bool connect();
   // é‡Šæ”¾èµ„源
   ~MysqlConn( );
   ~MysqlConn();
   // æ›´æ–°æ•°æ®åº“  ( insert  update delete )
   bool update(std::string sql);
   bool update(string sql);
   // æŸ¥è¯¢æ•°æ®åº“
   bool query(std::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( );   // åˆ·æ–°æ´»è·ƒæ—¶é—´
   void refreshActiveTime();   // åˆ·æ–°æ´»è·ƒæ—¶é—´
   long long getActiveTime();   // èŽ·å–å½“å‰æ´»è·ƒçš„æ—¶é—´é—´éš” 
   // å®‰å…¨æ ¡éªŒæŽ¥å£
   bool isSqlSafe(const std::string& sql);
private:
   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;
};