lib-odb mysql_test-me-odb
ODB是应用于C++的一个开源、跨平台、跨数据库的对象关系映射(ORM)系统。
它可以让你持久化C++对象到关系数据库,而不必处理表、列或者SQL,无需手动编写任何映射代码。
ODB支持MySQL,SQLite,PostgreSQL,Oracle和微软SQL Server关系数据库以及C ++98/03和C ++11语言标准。
它还配备了用于Boost和Qt可选的配置文件,让你可以无缝地使用这些库持久化C++类的值类型、容器和智能指针。
它有易用性,简洁的代码,安全,数据库可移植性,优良的性能,可维护性等优点。
总之它具有完善的学习文档的非常棒的C++的ORM框架。
基本代码结构
1.根据person.hxx 生成下列文件:
person-odb.hxx
person-odb.ixx
person-odb.cxx
person.sql
使用命名:odb -d --generate-query --generate-schema person.hxx
是数据类型如:mysql
如:odb -d mysql --generate-query --generate-schema person.hxx
2.在连接的数据库中执行sql文件,创建表
3.修改数据库配置:
//用户名、密码、数据库名称等默认是运行时,数据连接参数
auto_ptr db (new odb::mysql::database ("root", "201314", "odb"));
4.执行driver.cxx的main函数
注意:
1.odb命名是使用 apt install odb 安装
2.安装的开发库:
libodb-2.4/lion,now 2.4.0-1+b1 amd64 [已安装,自动]
libodb-boost-2.4/lion,now 2.4.0-1+b1 amd64 [已安装,自动]
libodb-boost-dev/lion,now 2.4.0-1+b1 amd64 [已安装,自动]
libodb-dev/lion,now 2.4.0-1+b1 amd64 [已安装,自动]
libodb-mysql-2.4/lion,now 2.4.0-3 amd64 [已安装,自动]
libodb-mysql-dev/lion,now 2.4.0-3 amd64 [已安装]
libodb-pgsql-2.4/lion,now 2.4.0-1+b1 amd64 [已安装,自动]
libodb-pgsql-dev/lion,now 2.4.0-1+b1 amd64 [已安装,自动]
libodb-qt-2.4/lion,now 2.4.0-2+b1 amd64 [已安装,自动]
libodb-qt-dev/lion,now 2.4.0-2+b1 amd64 [已安装,自动]
libodb-sqlite-2.4/lion,now 2.4.0-1+b1 amd64 [已安装,自动]
libodb-sqlite-dev/lion,now 2.4.0-1+b1 amd64 [已安装,自动]
odb/lion,now 2.4.0-5+b1 amd64 [已安装]
3.案例运行两次可能会出错。
odb命名:
-I Add to the beginning of the list of
directories to be searched for included header
files.
将添加到要搜索包含头文件的目录列表的开头。
--database|-d Generate code for the database.
为数据库生成代码。
--generate-query|-q Generate query support code
生成查询支持代码
--generate-prepared Generate prepared query execution support code.
生成准备好的查询执行支持代码。
--generate-session|-e Generate session support code.
生成会话支持代码。
--generate-schema|-s Generate the database schema.
生成数据库架构。
--generate-schema-only Generate only the database schema.
仅生成数据库架构。
--generate-prepared
--omit-unprepared
--profile|-p Specify a profile that should be used during
compilation.
指定编译期间应使用的配置文件。
--std Specify the C++ standard that should be used
during compilation.
问题一:
odb -d mysql --profile qt --generate-schema --generate-query --generate-session employee.hxx 无法编译
错误:
In file included from :1:0:
/usr/include/odb/qt/basic/mysql/default-mapping.hxx:8:26: fatal error: QtCore/QString: 没有那个文件或目录
#include
^
compilation terminated.
修改命名:
odb --database sqlite --profile qt --generate-schema --generate-query --generate-session -I/media/zlf/_dde_data/Qt5.12.3/5.12.3/gcc_64/include employee.hxx
Qt头文件编译错误
加入 --std c++11
Qt编译错误 -DQT_BOOTSTRAPPED
最终执行命名
odb -I /usr/include/x86_64-linux-gnu/qt5 --std c++11 -DQT_BOOTSTRAPPED -d mysql --profile qt --generate-schema --generate-query --generate-session employee.hxx
问题二:
在进行查询时条件过滤(分页)时, 生成sql异常
修改代码后正常:
typedef odb::query query;
typedef odb::result result;
//有条件,将所有数据排序.也可以进行分页
query b(query::type == 1);
result r(db->query(query(b) + " ORDER BY" + query::id + "desc", true));
lib-odb mysql_test-me-odb相关推荐
- mysql odb驱动_odb C++访问mysql数据库,从安装到写入
一:ubuntu下odb 安装 get-apt install gcc get-apt install g++ get-apt install odb 生成的odb位于:/usr/odb 生成的库(l ...
- ODB学习笔记之基础环境搭建
一,简介 ODB是应用于C++的一个开源.跨平台.跨数据库的对象关系映射(ORM)系统. 它可以让你持久化C++对象到关系数据库,而不必处理表.列或者SQL,无需手动编写任何映射代码. ODB支持My ...
- C++ ORM ODB 入门介绍(一)
2019独角兽企业重金招聘Python工程师标准>>> :::欢迎广大oscer拍砖和交流. C++的语言特性决定了在C++中的ORM框架不可能像Java,C#那没有那么灵活. C+ ...
- 如何使用ODB(How to use odb On windows)
1.下载ODB library:ODB Compiler,Common Runtime Library,Database Runtime Library. http://www.codesynthes ...
- python读取odb_如何使用python脚本更新Abaqus odb文件的节点值?
我可能错了,但是没有办法调用某个方法来替换odb中的现有值.但是,您可以做的是创建一个新的步骤和帧(或者只是现有步骤中的一个帧),然后使用新值创建一个新的field output对象.在 如果您能接受 ...
- odb 使用指南(四)数据库查询
背景 最近一直在看odb官网上odb-manual,由于是全英文文档,仔细看过一遍之后虽然感觉基本了解,但是隔几天之后再翻开时又要逐一回忆当初理解的一些细节,毕竟不是母语,没有那种一看就条件反射式的想 ...
- ODB 之 persist compile error
今天遇到一个很诡异的问题,报错如下: C:\DiskD\Projects.plus\Kolo\PatientManagement\Common\odb/database.txx(38): error ...
- WPF之Binding(转)
WPF之Binding Binding即绑定,听上去像一个音译词,很有趣,我们生活中常用的类似还有一个词,叫want to,我们叫妄图,只不过略加了感情色彩,扯远了,回到正题说绑定. 感觉这个东西在W ...
- 关于多库操作一些想法
关于多库操作一些想法 /// <summary> /// 功能描述:sql连接方法 /// </summary> /// < ...
- tipask二次开发总结_二次开发自我总结
Odb 结构如图上所示(来自于 doc ),可以很明显地分成两部分: Model Data . Result Data .所以要获取节点信息,材料信息, part 信息以及截面信息得用到 odb.As ...
最新文章
- 在Ubuntu14.04 64位上编译CMake源码操作步骤
- 做事范围是多么多么重要
- 微服务为什么一定要选spring cloud?
- CSS3 美女动画相框
- 论亚马逊QLDB与腾讯TDSQL对历史数据的管理和计算
- COBBLER无人值守安装-----已用真实服务器测试
- Audio Offload
- jQuery基本过滤选择器
- android 常用命令,Android开发常用命令整理
- 【Android】Windows环境安装Android Studio教程
- Linux内外存访问
- iPhone 14处理器曝光:万众期待的最硬核升级凉了
- Apktool 使用教程
- VScode 删除远程资源管理器中SSH TARGETS
- 在终端里面测试你的的打字速度
- spi通信问题-有波形但无法获取正确数据:MOSI和SCK
- PPPOE拨号经常掉线问题
- 光头老法师手持尼康却能玩出佳能的效果
- Android之数据存储-刘志远-专题视频课程
- 「CSDN 2022 和 2023」年度征文获奖名单已公布