C++ 的 ORM 框架,OOS 0.2.0 發布

jopen 10年前發布 | 8K 次閱讀 OOS

OOS 是一個 C++ 的 ORM 框架。旨在封裝所有數據庫后端功能,并對開發者提供統一的訪問 API。使用 OOS 我們不需要了解后端數據庫的類型和 SQL 語句,提供類 STL 的 API 和所有持久化對象的容器。

特性:

  • 封裝所有數據庫后端
  • 封裝了 SQL 語句和數據庫結構
  • 為所有對象提供一個容器
  • 類 STL 接口
  • 簡潔直接的設計
  • 支持事務處理
  • 內部引用計數機制
  • 可用于過濾的簡單表達式
  • 支持的數據庫: SQLite, MySQL
  • 支持操作系統:Windows, Linux
  • 無需依賴其他第三方庫
  • 易用

示例代碼:

#include "object/object_ptr.hpp"

#include "database/session.hpp"
#include "database/transaction.hpp"

#include <exception>

oos::session db(ostore, "sqlite://person.db");

db.create();

typedef oos::object_ptr<person> person_ptr;

// insert object
person_ptr p = db.insert(new person("Theo"));

oos::transaction tr(db);

// start transaction
try {  
    tr.begin();

    ostore.insert(new person("George"));
    ostore.insert(new person("Jane"));
    ostore.insert(new person("Tim"));
    ostore.insert(new person("Walter"));

    tr.commit();
} catch (std::exception&) {
    // an error occurred: do rollback
    tr.rollback();
}

發布說明: 這次發布增加對 MS SQL Server 數據庫支持,改進 MySQL 后端性能,并修復了幾個bug。

項目主頁:http://www.baiduhome.net/lib/view/home/1377143228741

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!