目录
一、ODB简介
ODB是应用于C++的一个开源、跨平台、跨数据库的对象关系映射(ORM)系统。它可以让你持久化C++对象到关系数据库,而不必处理表、列或者SQL,无需手动编写任何映射代码。ODB支持MySQL,SQLite,PostgreSQL,Oracle和微软SQL Server关系数据库以及C ++98/03和C ++11语言标准。它还配备了用于Boost和Qt可选的配置文件,让你可以无缝地使用这些库持久化C++类的值类型、容器和智能指针。它有易用性,简洁的代码,安全,数据库可移植性,优良的性能,可维护性等优点。
ODB不是框架。 它并没有规定您应该如何编写应用程序。 相反,它仅通过处理C ++对象的持久性而不干扰任何其他功能而设计为适合您的样式和体系结构。只需进行少量修改就可以使现有类持久化。 特别是,可以在没有默认构造函数的情况下声明持久类,可以自动使用现有的访问器和修饰符函数来访问数据成员,并且可以将ODB编译指示移出该类并移到单独的头中,从而使对象关系 映射完全是非侵入性的。 对自动数据库模式演变的支持还使您可以像对待应用程序中的任何其他C ++类一样对待ODB持久对象。
二、ODB下载
1、ODB Compliler
odb-2.4.0-i686-windows odb的执行文件
2、 Common Runtime Library
libodb-2.4.0 odb的核心库
3、 Database Runtime Libraries
我下载的是libodb-sqlite-2.4.0 , 与sqlite数据库交互时要用到的,大家可以按照自己的需要进行下载,比如使用mysql数据库的话,就下载libodb-mssql-2.4.0。
4、 Tests and Examples
odb-examples-2.4.0 运行实例
三、ODB的配置
1、 ODB Compliler
(1)解压
将下载好的 odb-2.4.0-i686-windows 解压到某个目录, 我这里解压到D:\software\odb\odb-2.4.0-i686-windows\bin目录下
(2)设置odb_path
在bin文件夹下有odb.exe可执行文件, 将bin目录加入环境变量中 计算机->属性->高级系统设置->环境变量,新建用户变量odb_path
(3)添加odb_path到path
再编辑Path这个用户变量将 odb_path加入
(4)测试是否成功安装
打开cmd 执行 odb –version看是否安装成功, 如果安装成功则如下
2、Common Runtime Library
(1)解压
将下载好的 libodb-2.4.0 解压到 D:\software\odb\libodb-2.4.0目录下
(2)编译
进入目录 D:\software\odb\libodb-2.4.0 打开文件libodb-vc10.sln,用vs20120打开,直接编译会生成对应的dll文件 和 .lib文件。
(3)生成文件的位置
odb-d-2.4-vc10.dll在D:\software\odb\libodb-2.4.0 \bin, odb-d.lib在D:\software\odb\libodb-2.4.0 \lib中。
3、 Database Runtime Libraries
(1)解压
将下载好的libodb-sqlite-2.4.0解压到 D:\software\odb\libodb-sqlite-2.4.0目录下。
(2)打开sln
进入目录D:\software\odb\libodb-sqlite-2.4.0打开文件libodb-sqlite-vc10.sln
(3)设置
a、附加包含目录
c/c++->常规->附加包含目录 加上
D:\software\odb\libodb-2.4.0
D:\software\odb\sqlite-amalgamation-3380000
这是我自己的目录, 个人根据自己安装目录添加路径, 也可以用相对路径,这里用的觉得路径是为了方便验证。
b、附加库目录
c、附加依赖项
(4)无法链接_sqlite3_unlock_notify函数问题的解决
输入命令cl sqlite3.c -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_API=__declspec(dllexport) -link -dll -out:sqlite3.dll
Original: https://blog.csdn.net/kupe87826/article/details/123704858
Author: kupeThinkPoem
Title: 跨平台数据库ODB实战1-ODB安装
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817488/
转载文章受原作者版权保护。转载请注明原作者出处!