Пересматриваем решение на счёт SQL
This commit was merged in pull request #4.
This commit is contained in:
16
src/database/database.qbs
Normal file
16
src/database/database.qbs
Normal 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"
|
||||
]
|
||||
}
|
||||
}
|
||||
38
src/database/databasemanager.cpp
Normal file
38
src/database/databasemanager.cpp
Normal 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());
|
||||
}
|
||||
21
src/database/databasemanager.h
Normal file
21
src/database/databasemanager.h
Normal 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
|
||||
Reference in New Issue
Block a user