ODB学习笔记之基础环境搭建

ODB学习笔记之基础环境搭建一,简介ODB是应用于C++的一个开源、跨平台、跨数据库的对象关系映射(ORM)系统。它可以让你持久化C++对象到关系数据库,而不必处理表、列或者SQL,无需手动编写任何映射代码。ODB支持My

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一,简介

ODB是应用于C++的一个开源、跨平台、跨数据库的对象关系映射(ORM)系统。

它可以让你持久化C++对象到关系数据库,而不必处理表、列或者SQL,无需手动编写任何映射代码。

ODB支持MySQL,SQLite,PostgreSQL,Oracle和微软SQL Server关系数据库以及C ++98/03和C ++11语言标准。

它还配备了用于Boost和Qt可选的配置文件,让你可以无缝地使用这些库持久化C++类的值类型、容器和智能指针。

它有易用性,简洁的代码,安全,数据库可移植性,优良的性能,可维护性等优点。

总之它具有完善的学习文档的非常棒的C++的ORM框架。

可以去官网查看更多:http://www.codesynthesis.com/products/odb/

 

二,准备工作

以sqlite为例,在windows平台,用VS2013来搭建开发环境。

1,下载安装包

2,下载ODB核心库

3,下载数据库运行库

4,下载例子程序

5,下载sqlite的源文件(用sqlite所以需要)

地址:http://www.codesynthesis.com/products/odb/download.xhtml

ODB学习笔记之基础环境搭建

由于是windows平台,sqlite数据库,用的以下文件。(别的平台,别的数据库下载相应该的库文件)

odb-2.3.0-i686-windows(ODB的编译器,就是所对象成对sql和头文件,用于持久化相关)

libodb-2.3.0(ODB的核心库,编译出来的odb_d.lib(Debug版本)在examples中需要)

libodb-sqlite-2.3.0(odb操作sqlite的相关功能,编译出来的odb-sqlite-d.lib(Debug版本)在examples中需要)

odb-examples-2.3.0 (odb的例子和演示)

 

三,安装ODB

安装很简单。

1,解压odb-2.3.0-i686-windows,

2,把bin目录加到环境变量中

3,命令行输入odb –version看是否安装成功

详细的可以看README里面写的。

ODB学习笔记之基础环境搭建

如现如下提示,可以就说安装成功了

ODB学习笔记之基础环境搭建

 

四,编译ODB核心库,ODB的sqlite库,sqlite库

以下都是说的debug版本。

1,编译ODB核心库,生成odb-d.lib和odb-d-2.3-vc11.dll

2,编译sqlite库,生成sqlite.lib

3,编译ODB的sqlite库,生成odb-sqlite-d.lib和odb-sqlite-d-2.3-vc11.dll

 

 

解压libodb-2.3.0,后会看见vs2008-2011的工程文件,真接用VS打开就OK,然后把下面路径加到VC的目录中。

  Include:    …\libodb
  Library:    …\libodb\lib
  Executable: …\libodb\bin

然后编译,会在lib目录下生成odb-d.lib,在bin目录下生成odb-d-2.3-vc11.dll。

 

用sqlite编译出,生成sqlite.lib,直接可以参考官网。

需要注意的是,在编译的时候需要把SQLITE_ENABLE_UNLOCK_NOTIFY宏加上,如果不加上,那就要在libodb-sqlite-2.3.0工程中去掉LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY宏。

 

解压libodb-sqlite-2.3.0,同样打开vs的工程文件。把vc目录添加到到工程中。

  Include:    …\libodb-sqlite
  Library:    …\libodb-sqlite\lib
  Executable: …\libodb-sqlite\bin

要把odb-d.lib所在目录加到Library中,把odb-d-2.3-vc11.dll加到Executable中。

还要把sqlite的头文件所以在的目录放到  Include中,把sqlite.lib所在目录加到Library中。

然后编译,会在lib目录下生成odb-sqlite-d.lib,在bin目录下生成odb-sqlite-d-2.3-vc11.dll。

 

五,运行例子程序

前期的工作已经做好了,直接解压,用vs的打开。

我先进的是Hello程序。

1,用ODB编译器生成,persion.hxx,和person-odb.ixx文件。

方法是: 在该目录下输入odb -d sqlite –generate-query –generate-schema person.hxx

详见:http://www.codesynthesis.com/products/odb/doc/odb.xhtml

2,把核心库头文件,libodb-sqlite的头文件及sqlite的头文件目录加到VC的Include中。

3,把sqlite.lib,odb-sqlite-d.lib,odb-d.lib的目录均加到VC的Libary中。

然后编译运行。出现

ODB学习笔记之基础环境搭建

说明搭建成功。

 

总结:

1,ODB也是才接触,当时走了不了弯路,原因就是求成心切,不看文档,下了程序包就开搞了,结果可想而知。勿在浮沙筑高台。

2,编译时当时为一个错误盲目google好久,最后发现自己output都没看,直接看error面板去了。

插曲:当时odb才安装好,在自己打开的cmd命令中odb是OK的,但在批处理中写的odb系统却找不到odb。导致vs中讲运例子出现错误。(vs中要调用odb修改相关文件),但vs报的是连接错误,cmd.exe 的9009错误。没看output,直接google去了。后来发现是找不到odb,半天也没解决。后来重起之后解决了。环境变量有一定的缓存?

3,多看看文档,官网上的操作写得很详细,而且每个包下,都有readme和insall文档,都对如何运行有详细的描述,按上面的来一般是没什么问题。这个项目考虑也很周全,2008到2011的工程都给出了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167490.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql判断表分区是否存在_mysql 分区表

    mysql判断表分区是否存在_mysql 分区表CREATETABLE`fs_orders_funds_detail_sp32`(`id`int(11)NOTNULLAUTO_INCREMENT,`confirm_time`datetimeNOTNULLDEFAULT’0000-00-0000:00:00′,`order_id`varchar(50)DEFAULTNULLCOMMENT’平台单号’,`updat…

  • RestFul风格「建议收藏」

    RestFul风格「建议收藏」RestFul风格概念Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。功能资源:互联网所有的事物都可以被抽象为资源资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。分别对应添加、删除、修改、查询。传统方式操作资源:通过不同的参数来实现不同的效果!方法单一,post和get​ http://127.0.0.1/item/queryItem.actio

  • python可变参数调用函数的问题

    python可变参数调用函数的问题

    2021年12月30日
  • p2p文件服务器,P2P文件传输

    p2p文件服务器,P2P文件传输>网络中的应用,存在两种主流的体系结构。一种是C-S体系,另一种是P2P(对等网)体系。#C-S体系C-S体系是应用很广泛的应用程序体系,如Web应用。在C-S体系中,服务器承担着巨大的责任,需要处理大量的客户端请求,如文件下载请求,这种体系之间**客户端不能直接通信**,而是通过服务器传达。#P2P体系P2P,即peer-to-peer,意思是对等网络。P2P区分于C-S的就是这种体…

  • java中使用tika_Tika基本使用

    java中使用tika_Tika基本使用Tika是一个内容抽取的工具集合(atoolkitfortextextracting)。它集成了POI,Pdfbox并且为文本抽取工作提供了一个统一的界面。其次,Tika也提供了便利的扩展API,用来丰富其对第三方文件格式的支持。Tika提供了对如下文件格式的支持:PDF-通过PdfboxMS-*-通过POIHTML-使用nekohtml将不规范的html整理成为xhtml…

  • KL散度详解_kl散度 js散度

    KL散度详解_kl散度 js散度1、KL散度的概念2、两类KL散度拟合效果的定性分析3、两类KL散度拟合效果的数学推导4、KL散度的计算5、KL散度Python实现6、References

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号