这里本人使用的系统为Win10,Qt为5.14,编译器为WinGW
这里先简单说明下首先是用WinGW编译下QxOrm源码:
(资料图片仅供参考)
编译好后会在lib下生成dll以及.a(我这里是使用WinGW)
新建一个项目,结构是这样的:
这里有几个关键的地方一个是QxOrm,相当于使用QxOrm的配置文件。
以及export.h和precompiled.h都是必备的,并且这个需要在profile文件中进行配置:
源码如下:
export.h
#ifndef PRECOMPILED_H#define PRECOMPILED_H#include #include \"export.h\"#endif // PRECOMPILED_H
关键的是其qxDemo1.pro
include(./QxOrm/QxOrm.pri)INCLUDEPATH += D:/QtProject/QxOrm/includeLIBS += -LD:\QtProject\QxOrm\libCONFIG(debug, debug|release) {TARGET = DemoLIBS += -l\"QxOrmd\"} else {TARGET = DemoLIBS += -l\"QxOrm\"})DEFINES += _BUILDING_QX_DEMOQT -= gui!contains(DEFINES, _QX_NO_PRECOMPILED_HEADER) {PRECOMPILED_HEADER = ./precompiled.h} # !contains(DEFINES, _QX_NO_PRECOMPILED_HEADER)CONFIG += c++11 consoleCONFIG -= app_bundle# The following define makes your compiler emit warnings if you use# any Qt feature that has been marked deprecated (the exact warnings# depend on your compiler). Please consult the documentation of the# deprecated API in order to know how to port your code away from it.DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.# In order to do so, uncomment the following line.# You can also select to disable deprecated APIs only up to a certain version of Qt.#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \
user.cpp
# Default rules for deployment.qnx: target.path = /tmp/${TARGET}/binelse: unix:!android: target.path = /opt/${TARGET}/bin!isEmpty(target.path): INSTALLS += targetHEADERS += \export.h \precompiled.h \
user.h
这里有几个地方要注意的:
通过下面这个脚本配置好QxOrm
其次是设置好链接库目录和文件包含:
设置好对应的动态链接库:
定义好预编译文件:
其他代码如下:
user.h
#ifndef USER_H#define USER_Hclass QX_DEMO_DLL_EXPORT User{public:int id;QString name;int age;double capacity;User(): id(1){}virtual ~User(){}};QX_REGISTER_PRIMARY_KEY(User, int)QX_REGISTER_HPP_QX_DEMO(User, qx::trait::no_base_class_defined, 0)typedef std::shared_ptrUser_ptr;typedef qx::QxCollectionList_user;#endif // USER_H
user.cpp
#include #include #include #include \"precompiled.h\"#include \"user.h\"int main(int argc, char *argv[]){QCoreApplication a(argc, argv);QFile::remove(\"D:\QtProject\build-qxDemo1-Desktop_Qt_5_14_0_MinGW_32_bit-Debug\qxDemo1.sqlite\");qx::QxSqlDatabase::getSingleton()->setDriverName(\"QSQLITE\");qx::QxSqlDatabase::getSingleton()->setDatabaseName(\"D:\QtProject\build-qxDemo1-Desktop_Qt_5_14_0_MinGW_32_bit-Debug\qxDemo1.sqlite\");qx::QxSqlDatabase::getSingleton()->setHostName(\"localhost\");qx::QxSqlDatabase::getSingleton()->setUserName(\"root\");qx::QxSqlDatabase::getSingleton()->setPassword(\"\");qx::QxSqlDatabase::getSingleton()->setFormatSqlQueryBeforeLogging(true);qx::QxSqlDatabase::getSingleton()->setDisplayTimerDetails(true);qx::QxSqlDatabase::getSingleton()->setVerifyOffsetRelation(true);//更具上面类型创建表QSqlError daoError = qx::dao::create_table();User_ptr user_1, user_2;user_1.reset(new User);user_2.reset(new User);user_1->id = 1;user_1->name = \"猪小明\";user_1->age = 18;user_1->capacity = 99.9;user_2->id = 2;user_2->name = \"球球\";user_2->age = 18;user_2->capacity = 99999.9;QSqlDatabase db = qx::QxSqlDatabase::getDatabase();bool bCommit = db.transaction();//猪小明入库daoError = qx::dao::insert(user_1, &db);bCommit = (bCommit && ! daoError.isValid());qAssert(bCommit);db.commit();//球球入库daoError = qx::dao::save(user_2);bCommit = !daoError.isValid();qAssert(bCommit);//通过SQL进行检索,映射到 typedef qx::QxCollectionList_user;中List_user list_user;qx_query storedProc(\"select * from user\");daoError = qx::dao::execute_query(storedProc, list_user);List_user::iterator it = list_user.begin();qDebug() << \"------------------华丽的分割线------------------\";while(it != list_user.end()){qDebug() << \"id:\" << it.i->t().second->id;qDebug() << \"name:\" << it.i->t().second->name;qDebug() << \"age:\" << it.i->t().second->age;qDebug() << \"capacity:\" << it.i->t().second->capacity;it++;}qDebug() << \"------------------华丽的分割线------------------\";//修改下it = list_user.begin();while(it != list_user.end()){it.i->t().second->capacity = 59.9;it++;}qx::dao::update(list_user);//新增及删除User_ptr user_3;user_3.reset(new User);user_3->id = 100;user_3->name = \"闰土\";user_3->age = 19;user_3->capacity = 99999.9999;list_user.removeByKey(2);list_user.insert(100, user_3);qx::dao::save(user_3);qx::dao::delete_by_id(*user_2);return a.exec();}
main.cpp
#include \"precompiled.h\"#include \"user.h\"#include QX_REGISTER_CPP_QX_DEMO(User)namespace qx{template <>void register_class(QxClass&t){t.id(&User::id, \"id\");t.data(&User::age, \"age\");t.data(&User::name, \"name\");t.data(&User::capacity, \"capacity\");}}
程序运行截图如下:
【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】
点击这里:
关键词:
推荐内容
- QxOrm基本使用(对SQLLite进行增删改查)
- 【BT金融分析师】小i集团业绩增长亮眼,
- 把远大抱负和脚踏实地紧密连接在一起丨广
- 陕西:五一假期文旅兴消费旺 当前关注
- 肇州县200万亩大田玉米春种工作全面展开
- 非同寻常!潍柴董事长谭旭光“深度”考察
- 文旅部:拟确定3家旅游度假区为国家级旅
- 讯息:梦幻西游:猴哥与雪山大舞台决裂,
- 【环球新视野】期待更多劳模工匠领讲员走
- 为什么我下载到u盘的视频不能播放_下载到
- 淮河流域防汛备汛一线见闻-前沿资讯
- 当前头条:歌尔发布首款XR智能交互手环参
- 速读:“五一”假期黄金消费市场促销力度
- 环球讯息:华凌空调故障代码及处理_华凌
- 树根互联——为企业数字化转型提供切实可
- 情怀来了!横版游戏双截龙出新了
- 雷军公布小米13 Ultra原生壁纸:免费下载
- 当前热议!方翼_关于方翼介绍
- 空调运行灯闪烁还能开吗_空调运行灯闪烁
- 飞鸟尽良弓藏;狡兔死走狗烹是啥意思_飞鸟
- *ST搜特:终止筹划控制权变更事项 股票复牌
- 天天快看:荆州区公安举行“春耕行动”集
- 英媒:C罗渴望离开沙特联赛 潜在五下家
- 全球信息:蓝天燃气一季度净利润稳中有增
- 甘李药业: 股东集中竞价减持股份计划公
- 环球简讯:中国驻伊朗大使馆提醒在伊朗的
- 开心更暖心!潍坊市“五一”假期志愿服务
- 环球速递!憋了这么久,美方得出了一个结
- 鸭血、猪血能清肺?腐乳吃了会致癌?4月
- 1美元兑换多少韩元?(2023年5月4日)
- 长风两处小边角变身“小花园”!抬头见绿
- 周六福品牌大片《人生一克》于五一黄金周
- b股怎么开户「b股开户费怎么收建行信用卡
- 空调温度标准怎么设定:在享受舒适的温度
- 江西省鄱阳县发布雷电黄色预警
- “五一”假期民航运输旅客941.2万人次
- 快消息![年报]酒鬼酒2022年营利双增,经
- 温州鹿城新能源汽车停车前2小时免费吗?
- 5月4日 13:01分 两面针(600249)股价快速拉升
- 树大招风 天天即时
- sone能组成哪个单词_sone
- 环球观焦点:“五一”消费观察:黄金周餐
- 当前消息!嘉定这名“90后”青年民警,如
- 我想抵达的地方就是我自己......大隐•五
- “五一档”电影总票房超15亿元
- “太空快递”即将发货!天舟六号的货物清
- 每日精选:三国志战略版荀攸怎么样(三国
- 康农种业IPO:研发费用两连涨,六成收入
- 当前焦点!广东德尔玛科技股份有限公司首
- 宠爱!瓜帅让曼城全队为哈兰德列队 哈宝
- 环球观察:龙骨甸大桥七号桥墩真相_龙骨
- 今日热议:岁月掠影八十年
- 夯实金融基本盘 银行业多措并举反哺实体
- 环球要闻:凉拌紫甘蓝的家常做法窍门_凉
- “克里姆林宫遭无人机袭击”!俄方:保留
- 张家港市凤凰镇:海棠花开,护航青春健康
- 焦点关注:肆无忌惮的192电信诈骗,终于
- 河南发布地质灾害黄色预警
- 焦点讯息:美国得州枪杀五人嫌犯被捕
- 各地陆续迎来假期返程高峰 基本信息讲解
- *ST搜特:终止筹划控制权变更事项 股票复牌
- 天天快看:荆州区公安举行“春耕行动”集
- 英媒:C罗渴望离开沙特联赛 潜在五下家
- 全球信息:蓝天燃气一季度净利润稳中有增
- 甘李药业: 股东集中竞价减持股份计划公
- 环球简讯:中国驻伊朗大使馆提醒在伊朗的
- 开心更暖心!潍坊市“五一”假期志愿服务
- 环球速递!憋了这么久,美方得出了一个结
- 鸭血、猪血能清肺?腐乳吃了会致癌?4月
- 1美元兑换多少韩元?(2023年5月4日)
- 长风两处小边角变身“小花园”!抬头见绿
- 周六福品牌大片《人生一克》于五一黄金周
- b股怎么开户「b股开户费怎么收建行信用卡
- 空调温度标准怎么设定:在享受舒适的温度
- 江西省鄱阳县发布雷电黄色预警
- “五一”假期民航运输旅客941.2万人次
- 快消息![年报]酒鬼酒2022年营利双增,经
- 温州鹿城新能源汽车停车前2小时免费吗?
- 5月4日 13:01分 两面针(600249)股价快速拉升
- 树大招风 天天即时
- sone能组成哪个单词_sone
- 环球观焦点:“五一”消费观察:黄金周餐
- 当前消息!嘉定这名“90后”青年民警,如
- 我想抵达的地方就是我自己......大隐•五
- “五一档”电影总票房超15亿元
- “太空快递”即将发货!天舟六号的货物清
- 每日精选:三国志战略版荀攸怎么样(三国
- 康农种业IPO:研发费用两连涨,六成收入
- 当前焦点!广东德尔玛科技股份有限公司首
- 宠爱!瓜帅让曼城全队为哈兰德列队 哈宝
- 环球观察:龙骨甸大桥七号桥墩真相_龙骨
- 今日热议:岁月掠影八十年
- 夯实金融基本盘 银行业多措并举反哺实体
- 环球要闻:凉拌紫甘蓝的家常做法窍门_凉
- “克里姆林宫遭无人机袭击”!俄方:保留
- 张家港市凤凰镇:海棠花开,护航青春健康
- 焦点关注:肆无忌惮的192电信诈骗,终于
- 河南发布地质灾害黄色预警
- 焦点讯息:美国得州枪杀五人嫌犯被捕
- 各地陆续迎来假期返程高峰 基本信息讲解
- 深交所:深市公司的内生增长动力将进一步
- 天天信息:重阳节的发朋友圈的句子_适合发
- 张本智和发声:德班世乒赛目标是金牌,有
- 搜狐汽车全球快讯 | 零跑汽车4月交付量
- 全球实时:正常利润(关于正常利润介绍)
- 一首诗·一个节·一座城——高品质文化供
- 短短4个月!狂推10栋楼!镇江高端盘持续
- 杭州九大湖20余湖景房,无缘西湖可别错过
- 五一假期进入收尾阶段 北京今日南风较大
- 当前资讯!深夜利空 油价暴跌!100亿美元
- 世界微头条丨5月3日生意社硅铁基准价为74
- 音乐、电竞、购物 益阳桃江“五一”消费
- “五一”假期激发文旅市场活力
- 【环球聚看点】索尼第一方即时服务游戏首
- 当前播报:快乐品茗
- 都说农村脏,晒晒我农村老家的小平房,干
- 胡锡进为“插队女”发声遭质疑!评论区沦
- 九州捭阖录txt下载 天天消息
- 一箱油干 1000KM 豪华大 7 座?极其
- 天天热点评!苹果版余额宝开局火爆 四天