2025-03-14 16:06:20 +08:00
|
|
|
|
#ifndef SQLQUERYEXECUTOR_H
|
|
|
|
|
|
#define SQLQUERYEXECUTOR_H
|
|
|
|
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
|
#include <QSqlQuery>
|
2025-03-31 16:01:49 +08:00
|
|
|
|
#include <QHash>
|
2025-03-14 16:06:20 +08:00
|
|
|
|
#include "global.h"
|
|
|
|
|
|
|
|
|
|
|
|
class SqlQueryExecutor : public QObject
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
static SqlQueryExecutor& instance();
|
2025-03-17 18:36:10 +08:00
|
|
|
|
//单条SQL语句执行接口
|
2025-04-01 14:37:41 +08:00
|
|
|
|
QSqlQuery executeSQL(const QString& connectionName, const QString& strSQL, const QVariantHash& params = {}, bool useTranscation = false);
|
2025-03-17 18:36:10 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @brief 多条批量SQL语句执行接口
|
|
|
|
|
|
* @param sqlStatements SQL语句列表
|
|
|
|
|
|
* @param paramsList 参数列表(要与SQL语句一一对应)
|
|
|
|
|
|
*/
|
2025-04-01 14:37:41 +08:00
|
|
|
|
QSqlQuery executeBatchSQL(const QString& connectionName, const QStringList& sqlStatements,
|
2025-03-17 18:36:10 +08:00
|
|
|
|
const QList<QVariantHash>& paramsList = QList<QVariantHash>(), bool useTranscation = false);
|
2025-04-01 14:37:41 +08:00
|
|
|
|
QHash<QString, QString> getFiledType(const QString& connectionName, const QString& table, const QString& schema = "basic");
|
2025-03-14 16:06:20 +08:00
|
|
|
|
//基于具体业务的查询接口-对外调用
|
2025-04-01 14:37:41 +08:00
|
|
|
|
//属性组相关
|
2025-03-14 16:06:20 +08:00
|
|
|
|
const QVector<AttributeGroup> getAttributeGroup(const QString&);
|
2025-04-02 15:57:00 +08:00
|
|
|
|
const QString getAttributeGroupName(const QString&, int);
|
|
|
|
|
|
const AttributeGroup getAttributeGroupData(const QString&, int);
|
2025-04-01 14:37:41 +08:00
|
|
|
|
//模型相关
|
|
|
|
|
|
const QVector<Model> getModels(const QString&);
|
2025-03-14 16:06:20 +08:00
|
|
|
|
bool addModel(const QString&, Model&);
|
|
|
|
|
|
bool modelNameExistsInDB(const QString&, const QString&);
|
|
|
|
|
|
bool modelTypeExistsInDB(const QString&, const QString&);
|
2025-03-24 18:13:06 +08:00
|
|
|
|
bool removeModel(const QString&, int);
|
2025-04-01 14:37:41 +08:00
|
|
|
|
//属性相关
|
2025-04-01 16:45:30 +08:00
|
|
|
|
int getAttributeCount(const QString&, int, int);
|
|
|
|
|
|
bool getAtrributeInfo(const QString&, const QString&, Attribute&);
|
2025-04-02 10:44:52 +08:00
|
|
|
|
bool batchInsertAttributes(const QString&, int, int, QList<Attribute>);
|
|
|
|
|
|
bool batchDeleteAttributes(const QString&, int, int, QList<int>);
|
2025-04-02 14:58:42 +08:00
|
|
|
|
bool batchUpdateAttributes(const QString&, int, int, QList<Attribute>);
|
2025-03-14 16:06:20 +08:00
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
|
void errorOccurred(const QString& error);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
explicit SqlQueryExecutor();
|
|
|
|
|
|
~SqlQueryExecutor();
|
|
|
|
|
|
// 禁止拷贝
|
|
|
|
|
|
SqlQueryExecutor(const SqlQueryExecutor&) = delete; //delete关键字表示该函数不可用,包括编译器自动生成的函数
|
|
|
|
|
|
SqlQueryExecutor& operator=(const SqlQueryExecutor&) = delete;
|
|
|
|
|
|
//基于具体业务的查询接口-内部调用
|
|
|
|
|
|
QVector<int> getModelGroups(const QString&, int);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif //SQLQUERYEXECUTOR_H
|