PowerModeler/include/sqlQueryExecutor.h

68 lines
3.0 KiB
C
Raw Normal View History

2025-03-14 16:06:20 +08:00
#ifndef SQLQUERYEXECUTOR_H
#define SQLQUERYEXECUTOR_H
#include <QObject>
#include <QSqlQuery>
#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语句执行接口
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语句一一对应
*/
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);
QHash<QString, QString> getFiledType(const QString& connectionName, const QString& table, const QString& schema = "basic");
2025-03-14 16:06:20 +08:00
//基于具体业务的查询接口-对外调用
//属性组相关
2025-03-14 16:06:20 +08:00
const QVector<AttributeGroup> getAttributeGroup(const QString&);
const QString getAttributeGroupName(const QString&, int);
const AttributeGroup getAttributeGroupData(const QString&, int);
bool isPublicAttributeGroup(const QString&, int);
2025-04-17 15:34:43 +08:00
bool removeAttributeGroup(const QString&, int, int);
//模型相关
const QVector<Model> getModels(const QString&);
int getModelCount(const QString&);
2025-03-14 16:06:20 +08:00
bool addModel(const QString&, Model&);
bool updateModelInfo(const QString&, Model&);
Model getModelInfo(const QString&, int);
bool modelNameExistsInDB(const QString&, const QString&, const QString& skipCheckName = "");
bool modelTypeExistsInDB(const QString&, const QString&, const QString& skipCheckType = "");
bool removeModel(const QString&, int);
bool addModleGroups(const QString&, int, QVector<int>);
2025-04-18 18:44:26 +08:00
QVector<int> getModelGroups(const QString&, int);
//属性相关
int getAttributeCount(const QString&, int, int, const QString& filterChars = "");
int getAllAttributeCount(const QString&, const QString& filterChars = "");
bool getAttributeInfo(const QString&, const QString&, Attribute&);
int getAttributeID(const QString&, const QString&);
2025-04-11 17:14:17 +08:00
bool attributeTypeUseByModelGroup(const QString&, int, int, int);
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>);
//其它
const QVector<Component> getComponents(const QString&);
const QString getComponentName(const QString&, int);
2025-03-14 16:06:20 +08:00
signals:
void errorOccurred(const QString& error);
private:
explicit SqlQueryExecutor();
~SqlQueryExecutor();
// 禁止拷贝
SqlQueryExecutor(const SqlQueryExecutor&) = delete; //delete关键字表示该函数不可用包括编译器自动生成的函数
2025-04-18 18:44:26 +08:00
SqlQueryExecutor& operator=(const SqlQueryExecutor&) = delete;
2025-03-14 16:06:20 +08:00
};
#endif //SQLQUERYEXECUTOR_H