qDBManager is a lightweight Qt/C++ data access layer for SQLite with an entity-oriented API.
It was designed for projects that want ORM-like ergonomics without external heavy dependencies.
- Basic CRUD operations
- Entity registration and mapping
- Criteria-based search helpers
- SQLite adapter included (
interfaces/qsqlite.h)
Add qdbmanager.pri to your Qt .pro file:
include(../qdbmanager/qdbmanager.pri)qDBManager provides macros to simplify entity mapping:
Q_FIELD(type, name): mapped DB fieldQ_TRANSIENT_FIELD(type, name): non-persisted fieldQ_INDEX(field): single-field indexQ_INDEX_MUL(field1, field2): multi-field index
QDBManager* dbm = QDBManager::create("test", "QSQLITE");
dbm->register_entity<TestEntity>();
dbm->openDB("testdb.sqlite");
dbm->createTable<TestEntity>();
TestEntity* entity = new TestEntity();
entity->set_name("Leonard");
entity->set_surname("Hofstadter");
dbm->insertOrUpdate<TestEntity>(entity);
QListTestEntity items = dbm->listAll<TestEntity>();
dbm->closeDB();Important: always call register_entity<YourEntity>() before loading entities.
- Current adapter support is SQLite only.
- Additional adapters can be implemented by extending
QDBManager.
See LICENSE.
Hope to help someone with this lines. Every suggestion is appreciated.