This event has ended. View the official site or create your own event → Check it out
This event has ended. Create your own
View analytic
Monday, September 8 • 3:15pm - 4:15pm
Persisting C++ Classes in Relational Databases with ODB

Log in to save this to your schedule and see who's attending!

ODB is an open source, cross-platform and cross-database (SQLite, PostgreSQL, MySQL, MS SQL Server, Oracle) object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL, and without manually writing any mapping code.

In the first part of this two-part talk we will cover the basics of transactionally persisting, loading, updating, and deleting simple C++ classes in a database as well as querying the database for objects. We will then look into persisting C++ classes that have more interesting data members, such as containers and pointers to objects, or that form a polymorphic hierarchy. Support for C++11, Qt, and Boost value types, containers, and smart pointers will also be covered.

Targeting 5 different database systems at the same time may sound like a daunting task but as we will see it is not that hard with ODB. Life would also be a lot easier if our C++ classes never changed. The next best thing is to have comprehensive tooling support. So we will conclude the first half with a discussion of database schema evolution and its support in ODB.

avatar for Boris Kolpackov

Boris Kolpackov

Chief Hacking Officer, Code Synthesis
Boris Kolpackov is a founder and CHO (Chief Hacking Officer) at Code | Synthesis, a company focusing on the development of open-source | tools and libraries for C++. For the past 10 years Boris has been | working on solving interesting problems in the context of C++ using | domain-specific languages (DSL), C++ parsing, source-to-source | translation, and code generation. His notable projects to date | include ODB (ORM for C++), XSD... Read More →

Monday September 8, 2014 3:15pm - 4:15pm

Attendees (29)