48 lines
1.8 KiB
C++
48 lines
1.8 KiB
C++
#ifndef SQLQUERYEXECUTOR_H
|
||
#define SQLQUERYEXECUTOR_H
|
||
|
||
#include <QObject>
|
||
#include <QSqlQuery>
|
||
#include <QMap>
|
||
#include "global.h"
|
||
|
||
class SqlQueryExecutor : public QObject
|
||
{
|
||
Q_OBJECT
|
||
|
||
public:
|
||
static SqlQueryExecutor& instance();
|
||
//单条SQL语句执行接口
|
||
QSqlQuery executeSQL(const QString& strConnectionName, const QString& strSQL, const QVariantHash& params = {}, bool useTranscation = false);
|
||
/**
|
||
* @brief 多条批量SQL语句执行接口
|
||
* @param sqlStatements SQL语句列表
|
||
* @param paramsList 参数列表(要与SQL语句一一对应)
|
||
*/
|
||
QSqlQuery executeBatchSQL(const QString& strConnectionName, const QStringList& sqlStatements,
|
||
const QList<QVariantHash>& paramsList = QList<QVariantHash>(), bool useTranscation = false);
|
||
//基于具体业务的查询接口-对外调用
|
||
const QVector<Model> getModels(const QString&);
|
||
const QVector<AttributeGroup> getAttributeGroup(const QString&);
|
||
const QString getArributeGropuName(const QString&, int);
|
||
bool addModel(const QString&, Model&);
|
||
bool modelNameExistsInDB(const QString&, const QString&);
|
||
bool modelTypeExistsInDB(const QString&, const QString&);
|
||
bool removeModel(const QString&, int);
|
||
int getAttributeCount(const QString&, const QString&);
|
||
|
||
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
|