官網地址: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, 則成功插入一條數據)