QxOrm library - C++ Qt ORM (Object Relational Mapping) and ODM (Object Document Mapper) library - Official repository
Switch branches/tags
Nothing to show
Clone or download
QxOrm QxOrm 1.4.5 release
- Support MongoDB database : QxOrm library becomes a C++/Qt Object Document Mapper ODM library !
- For more details about MongoDB integration, see QxOrm manual (https://www.qxorm.com/qxorm_en/manual.html#manual_95) and new sample project available in ./test/qxBlogMongoDB/ directory
- QxOrm library is now available on GitHub (official repository) : https://github.com/QxOrm/QxOrm
- Fix an issue in qx::IxSqlQueryBuilder class when QxOrm library is used in a multi-thread environment
- Support latest version of boost (1.66)
- Update boost portable binary serialization classes to version 5.1 (provided by https://archive.codeplex.com/?p=epa)
- Fix an issue building SQL query for Oracle database (doesn't support AS keyword for table alias)
- Improve qx::QxClassX::registerAllClasses() function : possibility to initialize all relations (useful to work with introspection engine)
- Improve qx::IxPersistable interface : provide new methods toJson() / fromJson()
- Improve documentation/website : change http://www.qxorm.com by https://www.qxorm.com everywhere
- Fix fetching relations with soft delete putting SQL condition in the JOIN part instead of WHERE part
- Fix SQL generator for Oracle database : use new limit/pagination syntax (version Oracle > 12.1)
- Improve SQL generator interface : add 'onBeforeSqlPrepare()' method to modify/log SQL queries in custom classes
- Add an option in qx::QxSqlDatabase class to format SQL query (pretty-printing) before logging it (can be customized creating a qx::dao::detail::IxSqlGenerator sub-class)
- Fix an issue with boost/std::optional (to manage NULL database values) and some databases : if optional is empty, then create a NULL QVariant based on QVariant::Type
- Add an option in qx::QxSqlDatabase class to insert square brackets (or any other delimiters) in SQL queries for table name and/or column name (to support specific database keywords)
- Improve introspection engine : add getType() method in qx::IxDataMember interface to get C++ type of a property dynamically
- Improve qx::QxSqlDatabase singleton settings class to make easier working with several databases : now there are 3 levels of settings : global >> per thread >> per database (see 'bJustForCurrentThread' and 'pJustForThisDatabase' optional parameters in all setXXXX() methods)
- Fix QxOrm.pri for MinGW compiler on Windows : an issue could occurred to export some symbols from shared library (some Qt signals for example)
- Add an option in qx::QxSqlDatabase singleton class to display only slow SQL queries (see setTraceSqlOnlySlowQueriesDatabase() and setTraceSqlOnlySlowQueriesTotal() methods)
Latest commit e40da42 Sep 4, 2018

readme.md

QxOrm library - Official repository

QxOrm library is an Object Relational Mapping (ORM) and Object Document Mapper (ODM) database library for C++ Qt developers. With a simple C++ setting function per class, you have access to the following features :

  • persistence : communication with databases (support 1-1, 1-n, n-1 and n-n relationships) ;
  • serialization : binary, XML and JSON format ;
  • reflection (or introspection) : access dynamically to classes definitions, retrieve properties and call classes methods.

Documentation

QxOrm website provides a user manual.

The goal of this documentation is to provide a user guide to learn how to work with QxOrm library features. This manual is intended for developers and software architects who are looking for a solution to manage a persistent data layer in C++/Qt. Technical skills in C++ and databases are required to understand this document.

Note : all features described in this manual/user guide can be defined quickly and easily with QxEntityEditor application (the graphic editor for QxOrm library, data model designer and source code generator). Another documentation dedicated to QxEntityEditor application is available on QxOrm website.

QxEntityEditor application

QxEntityEditor is a graphic editor for QxOrm library : QxEntityEditor provides a graphic way to manage the data model. QxEntityEditor is multi-platform (available for Windows, Linux and Mac OS X) and generates native code for all environments : desktop (Windows, Linux, Mac OS X), embedded and mobile (Android, iOS, Windows Phone, Raspberry Pi, etc.). A user manual (documentation) for QxEntityEditor application is available on QxOrm website.

QxEntityEditor is based on plugins and provides many ways to import/export your data model :

QxEntityEditor application

Authors

QxOrm is developed by Lionel Marty, a software development engineer since 2003.

License

QxOrm is a C++ library available under a dual license :

  • GNU/GPLv3 license : open-source and free (to develop an open-source project or to evaluate QxOrm library) ;
  • Proprietary license to distribute an application based on QxOrm library without any restrictions of GNU/GPLv3 license.