Files
XdlOrm/README.md
2026-04-03 11:32:07 +08:00

92 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# QxOrm 库 - 官方仓库
[QxOrm 库](https://www.qxorm.com/) 是一个为 C++ Qt 开发者提供的**对象关系映射 (ORM)** 和**对象文档映射 (ODM)** 数据库库。主要功能包括:
- [持久化](https://www.qxorm.com/qxorm_en/manual.html#manual_30):支持最常见的数据库,如 SQLite、MySQL、PostgreSQL、Oracle、MS SQL Server、[MongoDB](https://www.qxorm.com/qxorm_en/manual.html#manual_95)(支持 1-1、1-n、n-1 和 n-n 关系);
- [序列化](https://www.qxorm.com/qxorm_en/manual.html#manual_60)JSON、二进制和 XML 格式;
- [反射](https://www.qxorm.com/qxorm_en/manual.html#manual_70)(或[内省](https://www.qxorm.com/qxorm_en/manual.html#manual_70)):动态访问类定义,检索属性并调用类方法;
- [HTTP Web 服务器](https://www.qxorm.com/qxorm_en/manual.html#manual_96):独立的多线程 HTTP 1.1 Web 服务器(支持 SSL/TLS、持久连接、Cookie、会话、分块响应、URL 调度/路由);
- [JSON API](https://www.qxorm.com/qxorm_en/manual.html#manual_97):与 C++/Qt 以外的其他技术REST Web 服务、QML 应用程序、脚本语言)的互操作性。
## 文档
QxOrm 网站提供了[用户手册](https://www.qxorm.com/qxorm_en/manual.html)。
本文档的目标是提供一个用户指南,学习如何使用 QxOrm 库的功能。本手册面向正在寻找解决方案来管理 C++/Qt 中持久数据层的开发人员和软件架构师。理解本文档需要 C++ 和数据库方面的技术技能。
**注意:** 本手册/用户指南中描述的所有功能都可以通过 **QxEntityEditor 应用程序**QxOrm 库的图形编辑器、数据模型设计器和源代码生成器快速轻松地定义。QxOrm 网站上提供了[专门针对 QxEntityEditor 应用程序的文档](https://www.qxorm.com/qxorm_en/manual_qxee.html)。
## QxEntityEditor 应用程序
[QxEntityEditor](https://www.qxorm.com/qxorm_en/manual_qxee.html) 是 QxOrm 库的图形编辑器:**QxEntityEditor 提供了一种图形化方式来管理数据模型**。
QxEntityEditor 是多平台的(适用于 Windows、Linux 和 Mac OS X并为所有环境生成原生代码桌面Windows、Linux、Mac OS X、嵌入式和移动设备Android、iOS、Windows Phone、Raspberry Pi 等)。
QxOrm 网站上提供了[QxEntityEditor 应用程序的用户手册(文档)](https://www.qxorm.com/qxorm_en/manual_qxee.html)。
QxEntityEditor 基于插件,提供了多种导入/导出数据模型的方法:
- [自动生成 C++ 持久类](https://www.qxorm.com/qxorm_en/manual_qxee.html#cpp_export_settings)(在 QxOrm 上下文中注册);
- [自动生成 DDL SQL 脚本](https://www.qxorm.com/qxorm_en/manual_qxee.html#ddl_export_settings)(数据库架构),适用于 SQLite、MySQL、PostgreSQL、Oracle 和 MS SQL Server
- 管理每个项目版本的架构演变ALTER TABLE、ADD COLUMN、DROP INDEX 等);
- 通过网络传输数据模型并[快速创建客户端/服务器应用程序](https://www.qxorm.com/qxorm_en/manual_qxee.html#cpp_services_export_settings),使用 [QxService 模块](https://www.qxorm.com/doxygen/html/group___qx_service.html)
- [导入现有数据库结构](https://www.qxorm.com/qxorm_en/manual_qxee.html#wnd_mysql_import)(使用 ODBC 连接或原生驱动程序),适用于 SQLite、MySQL、PostgreSQL、Oracle 和 MS SQL Server 数据库;
- 因为每个项目都不同QxEntityEditor 提供了多种方法来自定义生成的文件(尤其是 [JavaScript 引擎和集成调试器](https://www.qxorm.com/qxorm_en/manual_qxee.html#js_engine))。
![QxEntityEditor 应用程序](https://www.qxorm.com/qxentityeditor/resource/qxee_sample_small.png)
## 依赖项
默认情况下QxOrm 库仅依赖于 [Qt 框架](https://www.qt.io/) 中的 [QtCore](https://doc.qt.io/qt-5/qtcore-index.html) 和 [QtSql](https://doc.qt.io/qt-5/qtsql-index.html) 库。
如果启用 [QxOrm HTTP Web 服务器](https://www.qxorm.com/qxorm_en/manual.html#manual_96) 功能,那么 QxOrm 库还将依赖于 [QtNetwork](https://doc.qt.io/qt-5/qtnetwork-index.html) 库。
某些功能需要 [boost](https://www.boost.org/) 依赖项(默认禁用)。
## 作者
QxOrm 由 XDL 团队开发,该团队自 2003 年以来一直是软件开发工程师。
## 许可证
QxOrm 是一个 C++ 库,可在双重许可证下使用:
- [GNU/GPLv3 许可证](https://www.qxorm.com/qxorm_en/resource/license.gpl3.txt):开源且免费(用于开发开源项目或评估 QxOrm 库);
- [专有许可证](https://www.qxorm.com/qxorm_en/download_details.php),用于分发基于 QxOrm 库的应用程序,不受 GNU/GPLv3 许可证的任何限制。
## Conan 打包方法
### 安装 Conan
首先,确保您已安装 Conan 包管理器。如果尚未安装,可以从 [Conan 官方网站](https://conan.io/downloads.html) 下载并安装。
### 构建和安装包
1. 克隆仓库并进入项目目录:
```bash
git clone <仓库地址>
cd XdlOrm
```
2. 构建并安装包到本地 Conan 缓存:
```bash
conan create . --profile:build default --profile:host default
```
3. 或者,直接在项目目录中构建:
```bash
conan build . --profile:build default --profile:host default
```
### 在项目中使用
在您的项目的 `conanfile.py` 中添加依赖:
```python
requires = [
"xdlorm/1.0.0"
]
```
或者,使用 `conan install` 命令安装:
```bash
conan install . --build=missing
```
### 配置选项
QxOrm 库提供了以下 Conan 选项:
- `shared`是否构建为共享库默认False
- `enable_boost`:是否启用 Boost 支持默认False
- `enable_boost_serialization`:是否启用 Boost 序列化默认False
- `enable_qt_gui`:是否启用 Qt GUI 支持默认False
- `enable_qt_network`:是否启用 Qt Network 支持默认False
- `enable_mongodb`:是否启用 MongoDB 支持默认False
- `no_json`:是否禁用 JSON 序列化默认False
- `unity_build`:是否启用 Unity 构建默认False
例如,构建共享库并启用 Boost 支持:
```bash
conan create . --profile:build default --profile:host default -o xdlorm:shared=True -o xdlorm:enable_boost=True
```