Qt之QxOrm

QxORM介绍

QxORM库是一种为了C++/Qt开发者服务的关系对象映射型数据库的类库,每个类都有简单的C++设置函数,你可以接触到如下特性:
持久性:支持最常见的数据库,如 SQLite、MySQL、PostgreSQL、Oracle、MS SQL Server、MongoDB(具有 1-1、1-n、n-1 和 n-n 关系)。
序列化:JSON、二进制和 XML 格式。
反射(或内省):动态访问类定义、检索属性和调用类方法。
HTTP Web Server:独立的多线程 HTTP 1.1 web 服务器(支持 SSL/TLS、持久连接、cookie、会话、分块响应、URL 分发器/路由)。
JSON API:与 C++/Qt 以外的其他技术的互操作性(REST web 服务、QML 应用程序、脚本语言)。

同时,QxORM提供了很多模块,如下所示:
QxDao : 该模块基于Qt-QtSql引擎,通过映射具有C++类属性的数据库表列,提供与数据库(选择、更新、删除、事务…)的通信。关系1-1、1-n、n-1和n-n在C++代码中很容易设置。该模块支持面向对象编程:继承、多态、模块化。它还支持许多容器 (stl, boost and Qt : std::vector, std::list, std::unordered_map, QList, QHash…).

QxRegister, QxDataMember, QxFactory and QxFunction : QxOrm模拟反射(或内省)机制 (like other languages : Java, C#…).

QxModelView : 在QxOrm上下文中注册的每个类可以由Qt模型/视图引擎(Qt窗口小部件和/或QML视图)使用。qx::IxModel接口自动向QML引擎公开在QxOrm上下文中定义的所有属性。该模块使QML和数据库之间的交互更加容易。

QxService : 该模块基于Qt库的Qt网络引擎,提供了一种简单而强大的方法来创建C++应用程序服务器(服务概念,包括客户端的请求和服务器的回复)。QxService使用来自QxOrm库的序列化和内省来通过网络传输任何类或结构。

QxCollection<Key, Value> : 这个线程安全容器具有std::vector<T>(插入顺序+按索引快速访问)和std::unordered_map<Key,Value>或QHash<Key,Value>(按密钥快速访问:哈希映射)的优点。QxCollection<Key,Value>适用于包含数据库生成的项。

QxSerialize : 该模块基于QtQDataStream类。QxOrm定义的任何类都可以序列化为二进制、XML和JSON格式。此模块还允许克隆对象的所有实例。大多数Qt对象(QObject、QString、QDate、QTime、QDateTime、QList、QHash…)都与QxSerialize模块兼容。

QxTraits : C++标准库提供了几个通用特性。QxOrm使用它们,但需要std标准库中没有的新功能。

QxCache : QxOrm的缓存可以包含所有类型的对象。例如,可以存储数据库产生的数据,以避免过于频繁的请求。此缓存是通用的,可以在QxOrm之外的其他上下文中使用。

QxValidator : 该模块为在QxOrm上下文中注册的类提供了一个验证引擎。要使用此验证引擎,您必须将约束定义为每个类的映射函数:void qx::register_class。如果对于类的实例,至少检测到一个约束冲突,则该实例无效:对象无法保存到数据库中(INSERT或UPDATE)。

QxMemLeak : 在调试模式下快速检测内存泄漏(带有来自Microsoft的文件和行=>MFC样式的指示)。本模块由吴永伟开发。如果您的项目中已经使用了另一个工具(例如Valgrind),则不应启用此功能。默认情况下,QxMemLeak模块被禁用

https://www.qxorm.com/qxorm_en/home.html

QxORM安装与使用

https://www.qxorm.com/qxorm_en/manual.html

QxORM部分中文资料

https://blog.csdn.net/weixin_42887343/article/details/120664818
https://waleon.blog.csdn.net/article/details/105071541

QxORM絮叨

QxORM采用GPLV2开源协议,商用时需要开放源码,所以使用时主程序IPC通信方式查询数据库规避此开源协议,采用编译静态库形式可能也无法避免,否则采用ODB、QDjango-db等其他ORM库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/630425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年第十四届蓝桥杯软件赛省赛总评

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周。 在QQ群上交流答疑&am…

VCG 网格清洗之移除小组件

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 基于之前连通性的思路,我们可以很容易获取到许多连通的面片集合,这里我们根据指定的数量阈值来剔除较小的面片集合,以此达到网格清洗的目的。 二、实现代码 //VCG #include <vcg/complex/algorithms/create/…

[AI争霸] 普通人看ChatGPT和文心一言那个更好

文章目录 引言便利性准确性总结 引言 从2022/2/24号openAI正式发布chatgpt第一个版本以来&#xff0c;到2023年中旬openAI宣布chatgpt成为用户增长量最快的软件&#xff0c;随后掀起的大模型热。随后国内的各大厂商纷纷推出自己的大模型&#xff0c;首当其冲的就是百度的文心一…

Springboot整合Canal -- Canal 多客户端

文章目录 前言一、批量注册bean定义&#xff1a;1.1 定义Canal注解&#xff1a;1.2 canal bean定义注册&#xff1a;1.3 canal bean 生成&#xff1a; 二、canal客户端获取mysql数据变动2.1 canal客户端2.2 消息处理 总结参考 前言 在项目中如果想要多个Canal 客户端通过tcp直…

Redis 消息队列和发布订阅

文章目录 基本模式生产者消费者原理&模型redis实现java实现 发布者订阅者原理&模型redis实现java实现 stream模式原理&模型工作原理redis实现Java实现 选型外传 基本模式 采用redis 三种方案&#xff1a; ● 生产者消费者&#xff1a;一个消息只能有一个消费者 ●…

Smart Tomcat

Smart Tomcat插件可以让idea图形化界面让代码部署到tomcat上达成一键打包部署的过程 下面是idea安装使用Smart Tomcat的过程 我们直接在plugins(插件)里搜索Tomcat 然后下载第一个 然后点击Apply(应用) 在一个项目中 第一次使用时要进行配置Smart Tomcat Name 可以不配置…

vscode安装和基本设置

目录 vscode安装和基本设置1.HTML标签2.标签属性3.HTML基本结构4.安装vscode5.安装Live Server插件6.HTML注释7.文档说明8.HTML字符编码9.HTML设置语言10.HTML标准结构 vscode安装和基本设置 1.HTML标签 标签 又称 元素&#xff0c;是HTML的基本组成单位。标签分为&#xff1…

JSP简单学习

jsp是在html中嵌入java代码 jsp也是在j2ee服务端中的java组件 第一次运行 在第一次运行jsp代码时会经历以下步骤&#xff0c;将jsp转为java代码&#xff0c;将java代码转为class文件。 所以通常会比较慢&#xff0c;编译后就好多了。 四大作用域 requestsessionpageapplica…

使用pdfbox 为 PDF 增加水印

使用pdfbox 为 PDF增加水印https://www.jylt.cc/#/detail?activityIndex2&idbd410851b0a72dad3105f9d50787f914 引入依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>3.0.1</ve…

cesiumlab切片通过arcgisjs加载

cesiumlab切片通过arcgisjs加载 需要注意2个地方&#xff0c;一个是tileInfo&#xff0c;一个是getTileUrl&#xff0c; 在tileInfo中定义好cesiumlab切片的相关信息。 getTileUrl 格式化url的格式。 注意设置编辑&#xff0c;避免超出范围报404。 <html lang"en"…

【栈】【字符串和int类型转化】Leetcode 150 逆波兰表达式求值

【栈】【字符串和int类型转化】Leetcode 150 逆波兰表达式求值 解法1 栈 ---------------&#x1f388;&#x1f388;题目链接 Leetcode 150 逆波兰表达式求值 &#x1f388;&#x1f388;------------------- 解法1 栈 字符串转化为int类型数据: Integer.parseInt(s) Long.p…

java多线程传参数

package com.myThread;public class AdminThread extends Thread{private String name;public void AdminThread(String name){this.name name;}Overridepublic void run() {//线程开始之后执行的代码for (int i 0; i < 100; i) {System.out.print(getName()"线程…

Web前端-移动web开发——flex布局

移动web开发——flex布局 1.0传统布局和flex布局对比 1.1传统布局 兼容性好布局繁琐局限性&#xff0c;不能再移动端很好的布局 1.2 flex布局 操作方便&#xff0c;布局极其简单&#xff0c;移动端使用比较广泛pc端浏览器支持情况比较差IE11或更低版本不支持flex或仅支持部…

ChatGPT 与生成式 AI 的崛起:第二十六章到第三十三章

原文&#xff1a;Rise of Generative AI and ChatGPT 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第二十五章&#xff1a;ChatGPT 用于国家网络安全和技术政策 介绍 恐怖分子、罪犯、警察、国防、执法机构、工程师、作家和学生等都在使用 ChatGPT&#xff0c;这是…

如何进行产品的人机交互设计?

产品的人机交互设计是指通过用户界面和用户体验设计来优化产品与用户之间的交互过程&#xff0c;从而提高产品的易用性、可用性和用户满意度。人机交互设计需要考虑用户的需求、行为模式、心理感受以及技术实现&#xff0c;下面我将介绍如何进行产品的人机交互设计。 首先&…

蓝桥备战 每日一题 (1)

二分法 代码如下&#xff1a; #include<iostream> #define ll long long using namespace std;ll query(ll n) {ll ret 0;while (n > 0) {ret n / 5; // 要计算 从 1 到 n 中 是 5 的倍数的个数&#xff0c;但是要注意 如果是 25 &#xff0c;要计算两次n / 5;}r…

kubeadm常用命令

一 kubeadm token 命令 "kubectl和kubeadm命令执行的时候" 默认情况下,kubectl 在 $HOME/.kube 目录下查找名为config的文件可以通过设置KUBECONFIG环境变量或设置--kubeconfig参数来指定其他Kubeconfig文件 ​ 解决1&#xff1a; k8s token 过期 的解决方法 ① 总…

【学习笔记】[AGC063E] Child to Parent

提供一个多项式做法。 分别设 f u , i , g u , i f_{u,i},g_{u,i} fu,i​,gu,i​表示以 u u u为根时&#xff0c; a u i a_ui au​i和 a u ≥ i a_u\ge i au​≥i的方案数&#xff0c;合并子树 v v v时&#xff0c;转移如下&#xff1a; f u , i ∑ f u , i − k r g v . k…

达梦报错:无效IP,设置达梦访问IP白名单

管理工具连接远程库&#xff0c;报错&#xff1a;无效IP 1.:关闭防火墙 systemctl status firewalld service iptables status 2.查看用户和用户状态 select username,ACCOUNT_STATUS from dba_users;3.查看用户 访问ip限制和资源限制 select id,failed_num,allow_addr fro…

倒排索引介绍

1.简介 倒排索引&#xff08;Inverted Index&#xff09;是信息检索系统中最常用的数据结构之一&#xff0c;它用来存储在全文搜索下某个单词存在于哪些文档或数据记录中。与传统的正排索引&#xff08;文档到关键词的映射&#xff09;不同&#xff0c;倒排索引建立了从关键词…