The YB.ORM library aims to simplify writing C++ code that has to deal with SQL databases. The goal is to provide a convenient interface like SQLAlchemy (Python) or Hibernate (Java). The library itself is cross-platform and supports a variety of SQL dialects: SQLite3, MySQL, Postgres, Oracle, and Firebird. Integration with Boost, Qt4, and wxWidgets is built-in. In a typical usage scenario, you would describe your database schema and table relationships in a simple XML-based format, generate SQL code to populate database schema with tables, generate C++ classes, add application-specific logic to the classes, and use these classes in cooperation with the Session object to query objects from the database, create new or modify/delete existing objects, or link and unlink objects using relations. Simple serialization to XML is supported along with connection pooling.
|Tags||ORM C++ Library SQL Database Developer Tools|
|Operating Systems||Windows Linux POSIX|
|Implementation||C++ SQL CppUnit Boost libxml2 Qt 4 wxWidgets odbc SQLite 3 MySQL postgresql Oracle firebirdsql|
Release Notes: This release implements order-by and use-list='false' relationship properties: useful for one-to-one relation. It adds create_schema() and drop_schema() methods to the Engine class. It has a basic JSON serializer from ElementTree. It optimizes DataObject and RelationObject algorithmically. CodeGen: the Holder typedef has been moved into a domain class. Domain object comparison has been fixed, allowing you to put them in maps and sets. There is a fix for tables without a surrogate key and tables with a manually assigned surrogate key. There are fixes for better support of tables with compound keys. Many typos have been fixed.
Release Notes: This is mostly a refactoring and bugfixing release. It adds Tutorial 4 (tree structure stored in a table), adds fixes to build under Mac OS X, refactors the Engine class hierarchy, fills FK values on linking of two objects if possible, extends logging for delete_object() operation, makes DDL statements generated from Schema iterable, renames several classes and files to follow the common style and to better reflect their contents, and adds many fixes to library logic and interfaces.
Release Notes: A new more intuitive syntax for filters in queries via operator overloading. When querying a tuple of domain classes, there will be issued a query with a join of corresponding tables. The query object has the new methods .one() and .count() in addition to the method .all(). Tutorial3: Querying objects has been added. A couple of subtle bugs have been fixed. The Auth sample is improved, using the application singleton for creating sessions.
Release Notes: This release integrated a native SQLite driver for use in non-Qt builds. It is used in Windows builds by default. Logging in the ORM core was improved. URLs can now be used to specify connections. New --with-test-db-url and --with-yborm-root configure script options and a YBORM_URL environment variable were added. Problems with deletion of objects were fixed. The interfaces of MetaData classes was cleaned up, making the generated code more readable. A new Expression class replaced the old Filter class.