QxOrm library is an Object Relational Mapping (ORM) and Object Document Mapper (ODM) database library for C++ Qt developers. Main features are :
- Persistence : support most common databases like SQLite, MySQL, PostgreSQL, Oracle, MS SQL Server, MongoDB (with 1-1, 1-n, n-1 and n-n relationships) ;
- Serialization : JSON, binary and XML format ;
- Reflection (or Introspection) : access dynamically to classes definitions, retrieve properties and call classes methods ;
- HTTP web server : standalone multi-threaded HTTP 1.1 web server (support SSL/TLS, persistent connections, cookies, sessions, chunked responses, URL dispatcher/routing) ;
- JSON API : interoperability with other technology than C++/Qt (REST web services, QML applications, scripting language).
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 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 :
- generate C++ persistent classes automatically (registered in QxOrm context) ;
- generate DDL SQL script automatically (database schema) for SQLite, MySQL, PostgreSQL, Oracle and MS SQL Server ;
- manage schema evolution for each project version (ALTER TABLE, ADD COLUMN, DROP INDEX, etc.) ;
- transfer your data model over network and create quickly client/server applications, using QxService module ;
- import existing database structure (using ODBC connection or native drivers) for SQLite, MySQL, PostgreSQL, Oracle and MS SQL Server databases ;
- because each project is different, QxEntityEditor provides several ways to customize generated files (especially a javascript engine and an integrated debugger).
By default, QxOrm library depends only on QtCore and QtSql libraries from Qt framework. If you enable QxOrm HTTP web server feature, then QxOrm library will depend also on QtNetwork library. Some features require boost dependency (disabled by default).
QxOrm is developed by Lionel Marty, a software development engineer since 2003.
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.