Storing your data in a database
Now that the data classes are ready, we can proceed to implement the database layer. Qt provides a ready-to-use sql
module. Various databases are supported in Qt using SQL database drivers. In gallery-desktop
, we will use the SQLITE3
driver, which is included in the sql
module and perfectly fits the use case:
- A very simple database schema: No need for complex queries
- Very few or no concurrent transactions: No need for a complex transaction model
- A single-purpose database: No need to spawn a system service, the database is stored in a single file and does not need to be accessed by multiple applications
The database will be accessed from multiple locations; we need to have a single entry point for it. Create a new C++ class named DatabaseManager
and modify DatabaseManager.h
to look like this:
#include <QString> class QSqlDatabase; const QString DATABASE_FILENAME = "gallery.db"; class DatabaseManager { public: ...