ODB is a compiler-based 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. The C++ code that performs the conversion between persistent classes and their database representation is automatically generated by the ODB compiler. The ODB compiler is a real C++ compiler except that instead of producing assembly or machine code, it generates portable C++, which can in turn be compiled by any C++ compiler. ODB is not a framework. It does not dictate how you should write your application. Rather, it is designed to fit into your style and architecture by only handling C++ object persistence and not interfering with any other functionality.
| Tags | C++ ORM Database object relational Mapping |
|---|---|
| Licenses | GPLv2 GPLv3 |
| Operating Systems | Linux Windows Mac OS X Solaris Unix |
| Implementation | C++ |
| Translations | English |
Recent releases


Release Notes: Major new features in this release include support for C++11, polymorphism, composite objects IDs (composite primary keys), and the NULL semantics for composite values. This release has also been tested with GCC 4.7 and Clang 3.0, with the ODB compiler now supporting the GCC 4.7 series plugin interface. This release also introduces a free proprietary license for small object models.


Release Notes: Major new features in this release are support for the Microsoft SQL Server database, including updates to the Boost and Qt profiles, support for database schemas (database namespaces), and the ability to define composite value types as C++ class template instantiations.


Release Notes: Major new features in this release are support for the Oracle database, including updates to the Boost and Qt profiles, support for optimistic concurrency using object versioning, support for read-only/const data members, support for persistent classes without object ids, and support for SQL statement execution tracing.


Release Notes: The major new feature in this release is the introduction of the view concept. A view is a read-only projection of one or more persistent objects or database tables or the result of a native SQL query execution. Other important features in this release include support for deleting persistent objects using a query expression, support for the NULL semantics with mapping to smart pointers, odb::nullable, or boost::optional, and support for mapping BLOB types to std::vector<char>.


Release Notes: Major new features in this release are support for PostgreSQL, including updates to the Boost and Qt profiles, support for per-class database operations callbacks, a new NULL handling mechanism, as well as the ability to specify database default values and additional column definition options.