C++的ORM工具比較


 

    用過Java的都知道SSH框架,特別對於數據庫開發,Java領域有無數的ORM框架,供數據持久層調用,如Hibernate,iBatis(現在改名叫MyBatis),TopLink,JDO,JPA……非常方便實用。
    用過C#的同學們也都知道通過CodeSmith軟件,生成微軟的PetShop分層模式,達到數據持久層的代碼,也非常方便。
    那么我們用C++的怎么辦,我們也是面向對象編程,在工作中也有數據庫需要管理。我們需要完全手工去寫那些重復性的代碼嗎?特別我現在采用的是Qt這種非常標准的C++語言。很希望能快速的開發軟件,把重心放在軟件的架構、控制系統、通信系統、文件傳輸系統、以及圖像處理上。不想在數據庫上有過多的累贅。那么我們也需要一個輕量級的ORM。
 
    目前C++中現存的ORM主流庫主要為以下幾個:
C++的ORM工具比較

QxQrm、Wt::Dbo依賴於特定的框架,而LiteSQL和ODB不需要特定框架支持,所以主要考慮這兩個工具。
 
Boost支持
LiteSQL:不支持
ODB:支持
需求分析:本系統可能會用到boost庫
 
技術支持
LiteSQL:技術支持一般,跟進開發很慢
ODB:技術支持很好,更新快,用戶較多
 
具體特點分析
LiteSQL:
1.所有支持的庫都寫到一個動態鏈接庫
2.生成數據庫嵌入到C++中
3.使用XML文件
ODB:
1.自動生成數據庫支持的代碼
2.根據類的定義,編譯生成數據庫表單
3.支持面向對象的持久化模型和數據庫API(提供簡單易用的數據庫操作方法)
4.使用c++頭文件
 
總結
Litesql是一個高耦合性的工具,自動化程度高,但是不利於系統調試,還有不支持boost庫。
ODB 技術支持好,支持boost庫,易於開發調試。
綜上所述,ODB最適合用來開發。我們的Lynn系統將使用ODB作為與數據打交道的類庫,下一篇即將更新ODB具體安裝使用實例。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM