Пересматриваем решение на счёт SQL

This commit was merged in pull request #4.
This commit is contained in:
2025-03-26 22:14:58 +05:00
parent d47988adda
commit b16ae39263
37 changed files with 852 additions and 758 deletions

16
src/database/database.qbs Normal file
View File

@@ -0,0 +1,16 @@
import qbs
PSLibrary {
Depends { name: "Qt"; submodules: "sql"}
Depends { name: "model" }
Depends { name: "sql_builder" }
Group {
name: "cpp"
files: [
"**/*.h",
"**/*.cpp"
]
}
}

View File

@@ -0,0 +1,38 @@
#include "databasemanager.h"
#include <model/author.h>
#include <model/book.h>
DatabaseManager::DatabaseManager() {}
DatabaseManager::~DatabaseManager()
{
if (db.isOpen())
db.close();
}
DatabaseManager& DatabaseManager::instance()
{
static DatabaseManager instance;
return instance;
}
bool DatabaseManager::connect(const QString& dbPath)
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbPath);
return db.open();
}
QSqlDatabase& DatabaseManager::database()
{
return db;
}
void DatabaseManager::initializeDatabase()
{
QSqlQuery query;
query.exec(model::createTableBook());
query.exec(model::createTableAuthor());
}

View File

@@ -0,0 +1,21 @@
#ifndef DATABASEMANAGER_H
#define DATABASEMANAGER_H
#include <QDebug>
#include <QtSql>
class Q_DECL_EXPORT DatabaseManager
{
public:
static DatabaseManager& instance();
bool connect(const QString& dbPath);
QSqlDatabase& database();
void initializeDatabase();
private:
DatabaseManager();
~DatabaseManager();
QSqlDatabase db;
};
#endif // DATABASEMANAGER_H