1.odb包括三部分
odb编译器,odb运行库libodb,特定的数据库相关的链接库。
odb编译器生成应用程序需要的持久化对象的代码。odb编译器是一个真正的c++编译器除了它产生的是c++代码而不是机器码。
2.使用步骤
1)声明持久化的类
#include <string>
#include <odb/core.hxx>
using namespace std;
#pragma db object no_id
class person
{
public:
friend class odb::access;
public:
unsigned long id;
string name;
string sex;
unsigned short age;
};
一般而言我们需要声明持久化类的默认构造函数,但是同时必须提供它的实现。odb官方文档只提供了类的构造函数的声明,没有提供实现,所有如果完全按照官方文档hello world的例子是会出错的。我们也可以不声明类的构造函数,此时我们声明一个对象时只能以查询的数据库实例来初始化这个对象。
#pragma db object 表明接下来的类是一个数据库相关的类
#pragma db id 表明接下来这个字段是这个持久化类的标识符字段
一般而言,这两条语句是声明一个持久化类所必需的两条语句。但是我们也可以不用#pragma db id,而是使用#pragma db object no_id,表明这个持久化类没有标识符,如上例子。
friend class odb::access;那么这条语句的作用