Refactor dialog package.

This commit is contained in:
Krad
2022-06-13 11:21:44 +08:00
parent 9a233251dc
commit 69a506ff94
27 changed files with 870 additions and 828 deletions

View File

@@ -10,7 +10,7 @@
#include <QSqlRecord>
#include <qdebug.h>
QSqlDatabase* SQLHelper::defaultDatabase= nullptr;
QHash<QString,QSqlQueryModel*>* SQLHelper::cache= new QHash<QString,QSqlQueryModel*>;
static QHash<QString,QSqlQueryModel*> cache;
bool SQLHelper::Open() {
if (defaultDatabase) return true;
defaultDatabase= new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE", "USCTDB"));
@@ -26,11 +26,11 @@ bool SQLHelper::Open(QSqlDatabase *base) {
}
void SQLHelper::Close() {
for(auto item : cache->values())
for(auto item : cache.values())
{
delete item;
}
cache->clear();
cache.clear();
if(defaultDatabase->isValid() && defaultDatabase->isOpen())
{
defaultDatabase->close();
@@ -39,25 +39,25 @@ void SQLHelper::Close() {
}
}
void prepareSQL(QSqlQuery& query,QMap<QString,QVariant>* params)
void prepareSQL(QSqlQuery& query,const QMap<QString,QVariant>& params)
{
if (!params) return;
for (auto key : params->keys())
if (params.empty()) return;
for (const auto & key : params.keys())
{
query.bindValue(key,params->value(key));
query.bindValue(key,params.value(key));
}
}
QSqlTableModel* SQLHelper::getTable(const QString &tableName) {
if (cache->contains(tableName)) return (QSqlTableModel*)(*cache)[tableName];
if (cache.contains(tableName)) return (QSqlTableModel*)cache[tableName];
CenterAlignSqlTableModel *model = new CenterAlignSqlTableModel(nullptr,*defaultDatabase);
model->setTable(tableName);
(*cache)[tableName] = model;
return (QSqlTableModel*)(*cache)[tableName];
cache[tableName] = model;
return (QSqlTableModel*)(cache)[tableName];
}
int SQLHelper::QueryCount(QString sql, QMap<QString,QVariant>* params) {
int SQLHelper::QueryCount(const QString& sql, const QMap<QString,QVariant>& params) {
QSqlQuery query(*defaultDatabase);
prepareSQL(query, params);
if (query.exec(sql))
@@ -68,7 +68,7 @@ int SQLHelper::QueryCount(QString sql, QMap<QString,QVariant>* params) {
return 0;
}
int SQLHelper::ExecuteNoQuery(QString sql, QMap<QString,QVariant>* params) {
int SQLHelper::ExecuteNoQuery(const QString& sql, const QMap<QString,QVariant>& params) {
QSqlQuery query(*defaultDatabase);
query.prepare(sql);
prepareSQL(query, params);
@@ -79,7 +79,7 @@ int SQLHelper::ExecuteNoQuery(QString sql, QMap<QString,QVariant>* params) {
return 0;
}
void SQLHelper::QueryFirst(QString sql, QMap<QString,QVariant>& result, QMap<QString,QVariant>* params) {
void SQLHelper::QueryFirst(const QString &sql, QMap<QString,QVariant>& result, const QMap<QString,QVariant>& params) {
QSqlQuery query(*defaultDatabase);
query.prepare(sql);
prepareSQL(query, params);
@@ -95,8 +95,8 @@ void SQLHelper::QueryFirst(QString sql, QMap<QString,QVariant>& result, QMap<QSt
}
}
QSqlQueryModel *SQLHelper::QueryModel(QString queryName, QString sql, QMap<QString, QVariant> *params) {
if (cache->contains(queryName)) return (*cache)[queryName];
QSqlQueryModel *SQLHelper::QueryModel(const QString& queryName, const QString& sql, const QMap<QString, QVariant> &params) {
if (cache.contains(queryName)) return cache[queryName];
QSqlQueryModel* model = new QSqlQueryModel;
QSqlQuery query(*defaultDatabase);
@@ -108,16 +108,16 @@ QSqlQueryModel *SQLHelper::QueryModel(QString queryName, QString sql, QMap<QStri
delete model;
return nullptr;
}
(*cache)[queryName] = model;
cache[queryName] = model;
return model;
}
QSqlQueryModel *SQLHelper::QueryModel(QString queryName) {
if (cache->contains(queryName)) return (*cache)[queryName];
QSqlQueryModel *SQLHelper::QueryModel(const QString& queryName) {
if (cache.contains(queryName)) return cache[queryName];
return nullptr;
}
void SQLHelper::QueryMap(QString sql, QMap<QString, QVariant> &result, QMap<QString, QVariant> *params) {
void SQLHelper::QueryMap(const QString& sql, QMap<QString, QVariant> &result, const QMap<QString, QVariant> &params) {
QSqlQuery query(*defaultDatabase);
query.prepare(sql);
prepareSQL(query, params);

View File

@@ -16,16 +16,15 @@ public:
static bool Open();
static bool Open(QSqlDatabase* base);
static void Close();
static void QueryFirst(QString sql, QMap<QString,QVariant>& result, QMap<QString,QVariant>* params = nullptr);
static int QueryCount(QString sql, QMap<QString,QVariant>* params = nullptr);
static int ExecuteNoQuery(QString sql, QMap<QString,QVariant>* params = nullptr);
static void QueryMap(QString sql, QMap<QString,QVariant>& result, QMap<QString,QVariant>* params = nullptr);
static QSqlQueryModel* QueryModel(QString queryName);
static QSqlQueryModel* QueryModel(QString queryName, QString sql, QMap<QString,QVariant>* params = nullptr);
static void QueryFirst(const QString &sql, QMap<QString,QVariant>& result, const QMap<QString, QVariant> &params = QMap<QString, QVariant>());
static int QueryCount(const QString &sql, const QMap<QString, QVariant> &params = QMap<QString, QVariant>());
static int ExecuteNoQuery(const QString &sql,const QMap<QString, QVariant> &params = QMap<QString, QVariant>());
static void QueryMap(const QString& sql, QMap<QString,QVariant>& result, const QMap<QString, QVariant> &params = QMap<QString, QVariant>());
static QSqlQueryModel* QueryModel(const QString &queryName);
static QSqlQueryModel* QueryModel(const QString &queryName, const QString &sql, const QMap<QString, QVariant> &params = QMap<QString, QVariant>());
static QSqlTableModel* getTable(const QString & tableName);
private:
static QSqlDatabase* defaultDatabase;
static QHash<QString,QSqlQueryModel*>* cache;
};