Files
energy_storage/src/database/DaoEntity.h

113 lines
3.0 KiB
C
Raw Normal View History

2025-05-19 09:54:33 +08:00
#ifndef _DaoBase_H_
#define _DaoBase_H_
#include "MysqlClient.h"
class DaoEntity
{
public:
DaoEntity(string tableName);
~DaoEntity();
static MysqlOption& mysqlOption();
static void setOption(std::string host, int port, std::string user, std::string pwd, std::string dbname);
2025-05-19 09:54:33 +08:00
static std::shared_ptr<DaoEntity> create(string tableName);
/**
* sql语句
* @param: sql sql
*/
static bool execOnce(string sql);
/**
* sql语句
* @param: sql sql
* @param: result
*/
static bool execOnce(string sql, vector<Fields>& result);
2025-05-19 09:54:33 +08:00
/**
*
* @param: tableName
*/
void setTableName(string tableName);
/**
*
* @return: bool true: false/
*/
bool isConnected();
/**
* sql语句
*/
bool exec(string sql);
/**
* sql语句并返回执行
*/
bool exec(string sql, vector<Fields>& result);
2025-05-19 09:54:33 +08:00
/**
* ,
* @param: fields
*/
bool insertFields(Fields& vecFields);
2025-05-19 09:54:33 +08:00
/**
* ,
* @param: vecFields
*/
bool insertFields(vector<Fields>& vecFields);
2025-05-19 09:54:33 +08:00
/**
* UNIQUE索引或PRIMARY KEY重复时执行更新数据,
* @param: vecFields
* @param: keys
*/
bool duplicateUpdate(Fields& vecFields, const vector<string>& keys);
2025-05-19 09:54:33 +08:00
/**
*
* @param: sql_c "where id='1'"
* @param: result
*/
bool queryFields(string keys, const string& sql_c, vector<Fields>& result);
2025-05-19 09:54:33 +08:00
/**
*
* @param: sql_c "where id='1'"
* @param: pageinfo
* @param: result
*/
bool queryFields(string keys, const string& sql_c, PageInfo& pageinfo, vector<Fields>& result);
2025-05-19 09:54:33 +08:00
/**
*
* @param: fields
* @param: sql_c
*/
bool updateFields(Fields& fields, const string& sql_c);
2025-05-19 09:54:33 +08:00
/**
*
* @param: fields
* @param: vecKeys
* @param: cond
*/
bool updateFields(Fields& fields, vector<string> vecKeys, const string& cond);
2025-05-19 09:54:33 +08:00
protected:
static MysqlOption option_;
2025-05-19 09:54:33 +08:00
// mysql 数据库操作对象
std::shared_ptr<MysqlClient> db_ = nullptr;
// 数据库表名称
string tableName_;
};
#endif // !!! _DaoBase_H_