官网地址:https://www.codesynthesis.com/products/odb/
环境搭建:ubuntu16.04-64
1、安装mysqlClient
sudo apt-get install mysql-client
2、下载包 odb_2.4.0-1_amd64.deb, 安装odb工具。
sudo dpkg -i odb_2.4.0-1_amd64.deb
查看版本:
3、 下载安装 libodb-2.4.0.tar.gz
./configure; make; make install
4、下载安装 libodb-boost-2.4.0.tar.gz
./configure; make; make install
5、下载安装 odb-2.4.0.tar.gz
./configure; make; make install
6、下载安装 libodb-mysql-2.4.0.tar.gz
./configure;
遇到错误:configure: error: libmysqlclient_r is not found;
解决:find / -name "libmysqlclient*"
cp /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.3.11 /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so
./configure 通过
make;make install
7、 linux下mysql orm 开发环境搭好。
8、 来测试一下吧。
9、 vs2017, 创建跨平台linux项目。
10、将头文件等拷贝到工程目录下, 方便编码和代码查找。
cd libodb-2.4.0/
cp odb/ /media/sf_WinShareLinux/ormTest/ormTest -R
cd libodb-mysql-2.4.0/odb/
cp mysql/ /media/sf_WinShareLinux/ormTest/ormTest/odb/ -R
11、添加包含目录, 库目录
链接器>>
12、创建数据库相关的类
#pragma once #include <string> #include "odb/core.hxx" using namespace std; //声明接下来的一个对象是与数据库相关的类 #pragma db object class personinfo { public: //查询需要的构造函数 personinfo() {}; //插入需要的构造函数 personinfo(string strName, string strSex, int nAge) { name = strName; sex = strSex; age = nAge; }; public: string name; string sex; int age; private: //我们将类的构造函数或者将数据成员声明为私有时,odb的access类可以访问我们的数据成员和构造函数。 friend class odb::access; //编号自动增长, #pragma db object 这行代码添加了, 则该行代码一定添加, 不然用odb编译会失败 #pragma db id auto unsigned long id_; };
在终端执行: odb -d mysql --generate-query --generate-schema personinfo.h
则会生成如下文件:
13、编译成功,(拷贝personinfo中的内容建表, 执行.out, 则成功插入一条数据)