对象关系映射(Object Relation Mapping,简称ORM),ORM简化了数据库查询过程,通过ORM持久层,用户不需要知道数据库的具体结构,就可以访问数据库.
记得以前操作数据库都是直接使用 SQL
语句,作为练手确实是可以,但是随着数据表的增多管理起来很是不便,故对 C++中的一些ORM做一些总结,以备后续使用到.
环境说明
- OS: Windows 7 64b
- PlatForm: Qt 5.11
配置编译
关于编译在另一篇文章中已经记录了传输门 →
现在可以从GitHub
上下载最新的版本,QxOrm-1.4.6,这个版本早就不依赖于Boost
了,直接编译就能一次通过!
使用
配置
将编译好的库的位置以及头文件配置到工程中.
关于主键类型
QxOMR
默认主键类型是 long,如果自己定义的表中不是这个类型,那么就要进行注册了,比如我定义成 int
类型,编译报如下错误:
In function 'void qx::register_class(T&) [with T = qx::QxClass<QDBRoleVo>]':
..\..\..\xxx\QDBRoleVo.cpp:16:43: error: invalid conversion from 'int QDBRoleVo::*' to 'qx::QxClass<QDBRoleVo>::type_primary_key QDBRoleVo::* {aka long int QDBRoleVo::*}' [-fpermissive]
t.id (& QDBRoleVo::m_nRoleID, "RoleID");
所以解决办法就有2个:
- 修改主键类型为
long
; - 注册我的主键类型为
int
; QX_REGISTER_PRIMARY_KEY (QDBRoleVo, int)
相比而言,还是乖乖把主键类型声明成
long
比较好一点.
参考文章
作者:鹅卵石
时间: 2019年3月15日22:54:35
版本:V 0.0.1
邮箱:kevinlq@163.com
版权:本博客若无特别声明,均属于作者原创文章,欢迎大家转载分享。但是,
希望您注明来源,并留下原文地址,这是对作者最大的尊重,也是对知识的尊重。
如果您对本文有任何问题,可以在下方留言,或者Email我.
捐赠
如果觉得分享的内容不错,可以请作者喝杯咖啡.