C++的ORM工具比较

 

用过Java的都知道SSH框架,特别对于数据库开发,Java领域有无数的ORM框架,供数据持久层调用,如Hibernate,iBatis(现在改名叫MyBatis),TopLink,JDO,JPA……非常方便实用。
用过C#的同学们也都知道通过CodeSmith软件,生成微软的PetShop分层模式,达到数据持久层的代码,也非常方便。
那么我们用C++的怎么办,我们也是面向对象编程,在工作中也有数据库需要管理。我们需要完全手工去写那些重复性的代码吗?特别我现在采用的是Qt这种非常标准的C++语言。很希望能快速的开发软件,把重心放在软件的架构、控制系统、通信系统、文件传输系统、以及图像处理上。不想在数据库上有过多的累赘。那么我们也需要一个轻量级的ORM。
目前C++中现存的ORM主流库主要为以下几个:
C++的ORM工具比较

QxQrm、Wt::Dbo依赖于特定的框架,而LiteSQL和ODB不需要特定框架支持,所以主要考虑这两个工具。
Boost支持
LiteSQL:不支持
ODB:支持
需求分析:本系统可能会用到boost库
技术支持
LiteSQL:技术支持一般,跟进开发很慢
ODB:技术支持很好,更新快,用户较多
具体特点分析
LiteSQL:
1.所有支持的库都写到一个动态链接库
2.生成数据库嵌入到C++中
3.使用XML文件
ODB:
1.自动生成数据库支持的代码
2.根据类的定义,编译生成数据库表单
3.支持面向对象的持久化模型和数据库API(提供简单易用的数据库操作方法)
4.使用c++头文件
总结
Litesql是一个高耦合性的工具,自动化程度高,但是不利于系统调试,还有不支持boost库。
ODB 技术支持好,支持boost库,易于开发调试。
综上所述,ODB最适合用来开发。我们的Lynn系统将使用ODB作为与数据打交道的类库,下一篇即将更新ODB具体安装使用实例。

转载于:https://www.cnblogs.com/lvdongjie/p/6163368.html

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

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

相关文章

电脑技巧:Win10自带存储感知功能给电脑磁盘瘦身

今天给大家分享Win10自带存储感知功能给电脑磁盘瘦身功能,希望对大家能有所帮助!1、什么是存储感知Win10存储感知功能属于Win10操作系统的一大亮点,自带有AI的存储感知功能发挥其磁盘清理功能,它可以在操作系统需要的情况下清理不…

线程的优先级

setPriority(); 设置线程的优先级Thread类里面的 MIN_PRIORITY 1 表示最小优先级 NORM_PRIORITY 5 表示默认优先级 MAX_PRIORITY 10 表示最大优先级

电脑存储:A盘、B盘知识介绍,为何总是电脑磁盘从C盘开始

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

使用axis发送xml报文,返回并解析报文实例

前段时间刚好学了一点webservice,因此想和大家分享一下我的成果,因为能力原因,只能做个小实例,望大家见谅! 此实例的思路是:(1)用String类型构造好需要发送的报文;(2)使用axis调用服…

某游戏在华为鸿蒙,华为鸿蒙系统运行安卓游戏出现新状况!安卓换皮论被彻底打脸?...

虽然华为鸿蒙系统已经经过几轮的测试,准备在6月份大规模推送正式版本了,但现在依然还有一些杂音不绝于耳。最主要的争议点还是老生常谈的”鸿蒙系统到底是不是安卓系统的换皮“。支持鸿蒙系统安卓换皮的一方拿出过不少证据,比如安装包还是APK…

电脑技巧:电脑插上U盘就死机或重启原因和解决办法

大家平时将u盘或其他可移动设备连接电脑插口的时候,不少电脑小白都碰到过操作系统自动重启甚至出现电脑死机的尴尬情况。针对u盘等外部设备连接引起的电脑死机问题,我们应该根据具体问题具体分析,找到原因就可以解决掉。接下来小编带大家看看…

使用UGUI绘制自定义几何图形

本文展示了如何使用UGUI绘制矩形,同理可绘制其他几何图形。 UGUI的渲染体系,简单来说所有的控件和可显示的元素都是Graphic。Graphic持有一个CanvasRenderer,通过SetVertices设置顶点,最终完成绘制。 举例来说,Image控…

电脑技巧:分享七个解决烦人的弹窗广告的小技巧

目录 1、及时卸载用不到的垃圾软件 2、修改软件设置(关闭不需要的资讯、广告) 3、开机启动项中禁用不需要的应用 4、删除弹窗广告程序 5、提高操作系统阻止级别 6、禁止弹窗广告的任务计划 7、安装火绒杀毒软件设置弹窗广告拦截 最后总结 很多朋友经常会…

MySQL+Amoeba实现数据库主从复制和读写分离

MySQL读写分离是在主从复制的基础上进一步通过在master上执行写操作,在slave上执行读操作来实现的。通过主从复制,master上的数据改动能够同步到slave上,从而保持了数据的一致性。实现数据的读写分离能带来的好处有: 增加物理服务…

从操作系统层面描述线程的五种状态

[初始状态] 仅是在语言层面创建 了线程对象, 还未与操作系统线程关联 [可运行状态] (就绪状态) 指该线程已经被创建(与操作系统线程关联), 可以由CPU调度执行 [运行状态] 指获取了CPU时间片运行中的状态 当CPU时间片用完,会从[运行状态]转…

html桌面图标样式,如何更改图标样式,换桌面图标的方法

打开桌面,桌面上摆放了放多程序的快捷方式,我们每天打开电脑最先接触的就是这些快捷方式图标。时间长了,是不是感觉乏味了。可以换一换。比如,在我的电脑桌面上有这样一个图标,那怎样更改桌面图标?下面&…

电脑知识:笔记本电脑边充电边用,对电池有损害吗?

使用笔记本的时候,你们有没有这样的习惯,就是插电使用,充满到100%也不会拔掉充电头。 有人说这种行为会对电脑的电池造成伤害,这是真的吗?到底正确的使用是怎么样的?今天就跟大家解答一下这个疑惑。 首先&a…

硬件知识:电源开关上的“1“和“0“分别是什么意思

几乎所有的电器、灯具和插座上 只要带有电源开关 必然会出现“|”和“O”两个符号 如果只看符号判断 “|”和“O”到底代表什么含义呢? 你又能分清哪个是电路联通 哪个是电路断开吗? 很多人认为“O”是通电,“|”是断电 因为英语里开是OPEN 很…

c# 正则表达式 html标签,C#匹配HTML标签,正则表达式谁会?

米脂JS:function StripHtml(html){var scriptregex ".]*>[sS]*?";var scripts new RegExp(scriptregex, "gim");html html.replace(scripts, " ");//Stripts the ";var styles new RegExp(styleregex , "gim");html htm…

Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目

默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题。 以管理员身份启动vs2013,创建一个"SharePoint 2013 - 空项目",名称我保持默认:SharePointProject2。 选择…

java中线程的6种状态

java中线程的状态分为6种。 1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对…

软件推荐:微软桌面助手软件上手体验

今天给大家分享微软桌面助手这款软件的使用体验,感兴趣的朋友可以下载体验一下!一、软件介绍微软桌面助手是微软官方发布的一款桌面分区应用,其特色是支持自动移动并根据分区来整理桌面文件,比如在默认设置情况下,可以…

微信11个超级实用的小技巧,值得一试

目录 1.1 微信收藏当备忘录用 1.2 保存长图 1.3 分类存放微信文件 2.1 快速备注好友姓名 2.2 取消单条朋友圈的消息提醒 2.3 查看群聊中错过的红包 3.1 去除红点 4.1 换行 4.2 批量保存视频 4.3 清除微信缓存 微信对于现在的朋友们来说,可以说是日常使用频率最高的软…