#ifndef SQLQUERYEXECUTOR_H #define SQLQUERYEXECUTOR_H #include #include #include #include "global.h" class SqlQueryExecutor : public QObject { Q_OBJECT public: static SqlQueryExecutor& instance(); //单条SQL语句执行接口 QSqlQuery executeSQL(const QString& connectionName, const QString& strSQL, const QVariantHash& params = {}, bool useTranscation = false); /** * @brief 多条批量SQL语句执行接口 * @param sqlStatements SQL语句列表 * @param paramsList 参数列表(要与SQL语句一一对应) */ QSqlQuery executeBatchSQL(const QString& connectionName, const QStringList& sqlStatements, const QList& paramsList = QList(), bool useTranscation = false); QHash getFiledType(const QString& connectionName, const QString& table, const QString& schema = "basic"); //基于具体业务的查询接口-对外调用 //属性组相关 const QVector getAttributeGroup(const QString&); const QString getAttributeGroupName(const QString&, int); const AttributeGroup getAttributeGroupData(const QString&, int); bool isPublicAttributeGroup(const QString&, int); bool removeAttributeGroup(const QString&, int, int); //模型相关 const QVector getModels(const QString&); int getModelCount(const QString&); 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); QVector 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&); bool attributeTypeUseByModelGroup(const QString&, int, int, int); bool batchInsertAttributes(const QString&, int, int, QList); bool batchDeleteAttributes(const QString&, int, int, QList); bool batchUpdateAttributes(const QString&, int, int, QList); //其它 const QVector getComponents(const QString&); const QString getComponentName(const QString&, int); signals: void errorOccurred(const QString& error); private: explicit SqlQueryExecutor(); ~SqlQueryExecutor(); // 禁止拷贝 SqlQueryExecutor(const SqlQueryExecutor&) = delete; //delete关键字表示该函数不可用,包括编译器自动生成的函数 SqlQueryExecutor& operator=(const SqlQueryExecutor&) = delete; }; #endif //SQLQUERYEXECUTOR_H