C++ 的 ORM 框架:OOS
jopen
11年前
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(); }