Speakers | |
---|---|
Koen Deforche | |
Schedule | |
Day | Sunday |
Room | Ferrer |
Start time | 11:00 |
End time | 11:15 |
Duration | 00:15 |
Info | |
Event type | Lightning-Talk |
Track | Lightning Talks |
Language | English |
The talk introduces Wt::Dbo. It will be compared to existing ORM and database solutions for C++ and other programming languages. Based on simple examples, you will learn how you can use Wt::Dbo to manipulate objects that are stored in a database from within C++.
Wt::Dbo is a brand new C++ ORM layer. Similar to Hibernate for Java and ActiveRecords for Ruby, Wt::Dbo offers a convenient way to interact with objects which are serialized in a database.
Although the lack of introspection in C++ seems to be problematic to write a decent ORM in C++, Wt::Dbo demonstrates that appropriate use of the C++ template system offers a perfect alternative.
Currently, Wt:dbo contains the following functionality: <ul> <li>Automatic schema creation</li> <li>Mapping of 1-N and M-N relations</li> <li>Lazy loading of objects and collections</li> <li>Uses prepared statements throughout</li> <li>Basic query support</li> <li>Automatic dirty checking and database synchronization</li> <li>Built-in optimistic locking (using a version field)</li> <li>Transactional integrity, even when a transaction fails: dirty objects remain dirty and may later be saved in a new transaction, or may be reverted to their persisted state (unlike Hibernate where you are forced to discard the whole session)</li> <li>Transaction write-behind for changes, with support for manual flushing</li> <li>Forces use of surrogate keys</li> <li>Does not depend on Wt (can be used independently)</li> <li>Simple backend system: at the moment only SQLite3. We are looking at how we can perhaps can leverage SOCI if it makes its way into Boost.</li> </ul>