ODB學習筆記之基礎環境搭建

來源:互聯網
上載者:User

標籤:mys   標準   ble   cut   下載   sdn   開源   gravity   直接   

一,簡介

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

由於是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的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中。

然後編譯運行。出現

說明搭建成功。

 

總結:

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的工程都給出了。

ODB學習筆記之基礎環境搭建

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.