C++ 的 ORM 框架:OOS

jopen 8年前

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();  }

项目主页:http://www.open-open.com/lib/view/home/1377143228741