85 lines
2.1 KiB
C++
85 lines
2.1 KiB
C++
#ifndef CC_MySql_H
|
||
#define CC_MySql_H
|
||
|
||
#ifndef _WINSOCKAPI_
|
||
#define _WINSOCKAPI_
|
||
#endif
|
||
|
||
#include "mysql.h"
|
||
#include "string"
|
||
#include "vector"
|
||
#include "nlohmann/json.hpp"
|
||
|
||
/*
|
||
* create DATABASE xxx; 创建库
|
||
* DROP DATABASE xxx; 删除库
|
||
*
|
||
*
|
||
* //创建表
|
||
* CREATE TABLE xxx (
|
||
column1 datatype,
|
||
column2 datatype,
|
||
...
|
||
);
|
||
|
||
//删除表
|
||
DROP TABLE xxx; or DROP TABLE [IF EXISTS] xxx;
|
||
|
||
//插入表
|
||
INSERT INTO xxx (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
|
||
|
||
//查询表
|
||
SELECT column1, column2, ... FROM xxx; or SELECT * FROM xxx; or SELECT * FROM xxx WHERE ID='xx';
|
||
* */
|
||
|
||
namespace CTL{
|
||
struct RetData{
|
||
std::vector<nlohmann::json> Data;
|
||
/// 结果集中行数
|
||
int Row = 0;
|
||
/// 结果集中列数
|
||
int Col = 0;
|
||
/// 操作是否成功标志
|
||
bool Flag = false;
|
||
std::string Error;
|
||
};
|
||
class MySql{
|
||
MYSQL* mysql = nullptr; //mysql连接
|
||
public:
|
||
MySql();
|
||
~MySql();
|
||
/**
|
||
* 连接到MySQL数据库
|
||
* @param host 数据库主机地址
|
||
* @param user 数据库用户名
|
||
* @param passwd 数据库密码
|
||
* @param db 数据库名
|
||
* @param port 数据库端口
|
||
* @return 连接成功返回true,否则返回false
|
||
*/
|
||
bool Connect(const std::string& host, const std::string& user, const std::string& passwd, const std::string& db, int port) const;
|
||
/**
|
||
* 执行SQL查询
|
||
* @param sql 要执行的SQL查询语句
|
||
* @return 返回查询结果,包括数据表中的数据
|
||
*/
|
||
RetData Query(const std::string& sql) const;
|
||
/**
|
||
* 执行SQL语句(非查询)
|
||
* @param sql 要执行的SQL语句,如插入、更新、删除操作
|
||
* @return 执行成功返回true,否则返回false
|
||
*/
|
||
RetData Execute(const std::string& sql) const;
|
||
/**
|
||
* 关闭数据库连接
|
||
*/
|
||
void Close() const;
|
||
private:
|
||
|
||
public:
|
||
|
||
};
|
||
}
|
||
|
||
#endif
|