一,简介 ODB是应用于C++的一个开源.跨平台.跨数据库的对象关系映射(ORM)系统. 它可以让你持久化C++对象到关系数据库,而不必处理表.列或者SQL,无需手动编写任何映射代码. ODB支持MySQL,SQLite,PostgreSQL,Oracle和微软SQL Server关系数据库以及C ++98/03和C ++11语言标准. 它还配备了用于Boost和Qt可选的配置文件,让你可以无缝地使用这些库持久化C++类的值类型.容器和智能指针. 它有易用性,简洁的代码,安全,数据库可移植性…
http://www.codesynthesis.com/products/odb/download.xhtml Installing ODB on UNIX Introduction This guide presents step-by-step instructions for installing the ODB system on UNIX-like operating systems, such as GNU/Linux, Mac OS X, Solaris, etc. Before…
本节介绍ODB的事务与 异常. 数据库操作经常涉及到操作多个表格,或者表格中的多行数据.因此必须保证整个过程是原子性的.ODB为数据库的事务提供了易于使用的接口. 使用odb::databse的相关方法(persist.update.erase.load)时,必须处于某个事务之间. 事务由 odb::transcation 类表示. odb::transaction t(db.begin()); ....ORM相关代码.或者SQL代码; t.commint(); or t.rollback();…
C++的语言特性决定了在C++中的ORM框架不可能像Java,C#那没有那么灵活. C++的ORM框架一般都是基于模板,编译时,因此其效率比起Java中的ORM框架更高. ODB是一个比较独立,成熟的基于C++Template的ORM框架.使用#pragma编译指令和ODB.exe编译器生成SQL的特化版本.#pragma指令,对于熟悉Java的ORM映射的oscer,可以认为和Java的注解类似.只不过Java的注解是运行时,而C++#pragma的指令是编译时. ODB中的类的#pragma…
本文以MySQL数据库为例,其他数据类似. 官方文档和下载 ODB官方首页    官方开发者说明书(开发教程) 安装下载首页(下载与安装教程Windows/Linux) Windows安装步骤(都是英文版,流程虽然详细,但是却略显麻烦,主要是因为ODB的机制造成的) ODB的使用原理 下面介绍ODB的使用原理来说明为什么会有这么多步骤: ODB的架构和流程 (1)你自己定义一个C++的Person类.h/.cpp (2)用安装的ODB Compiler编译Person.h得到新的 必选: MyS…
1.下载ODB library:ODB Compiler,Common Runtime Library,Database Runtime Library. http://www.codesynthesis.com/products/odb/download.xhtml (注意:ODB Compiler为odb-x.x.x-i686-windows, Database Runtime Libraries为你想要用的数据库对应的库) 2.解压,安装    你可以在根目录执行odb,也可以加到环境变量…
1.ORM ORM, Object Relational Mapping, 对象关系映射,用来将基于对象的数据结构映射到SQL的数据结构中.即将基于对象的数据映射到关系表中的字段,然后我们可以通过对象提供的接口来操作数据库,而无需写sql语句来操作数据库.一般一张关系表对应两个类,一个实体类和一个操作类.ORM是一种框架,而不是一种实现. 2.C++ 的ORM的实现ODB 1)一个简单的例子#include <odb/core.hxx>  //(1) #pragma db object//(2…
摘要: 2.使用 首先,需要定义一个对象,用来和数据库字段对应: [cce lang=”cpp”] #ifndef VOLUME_H #define VOLUME_H #include #include #pragma db object cl 2.使用首先,需要定义一个对象,用来和数据库字段对应:[cce lang=”cpp”]#ifndef VOLUME_H#define VOLUME_H #include <string>#include <odb/core.hxx> #pr…
ODB的组成部分: 1: 操作系统的ODB编译器 2: odb核心库libodb 3: 各种数据库的相关链接库 使用ODB访问数据需要的库和头文件(不懂, 请看https://www.cnblogs.com/hul201610101100/p/9482311.html): lib库: odb-oracle-d.lib, odb-d.lib (由libodb-oracle-2.4.0编译成功后产生的lib目录下的两个库) 头文件: 直接将libodb-oracle-2.4.0编译成功后的odb目录…
有上篇文章已经说了odb的环境编译, 现在直接拿来给的例子进行数据库的增删改查操作测试 1. ODB访问oracle数据库_ 插入操作(insert) 直接运行上篇编译好的exe文件会出现如下错误 错误原因: 已经提示的很清楚了 解决方法: 要告诉程序访问数据库的登录名, 密码, 数据库名, ip地址, 端口号 代码: 只要将auto_ptr<database> db (create_database (argc, argv)); 改成: auto_ptr<odb::database&g…