C++ 的 ORM 框架 OOS

GPLv3
C/C++ 查看源码»
Windows
2013-08-22
红薯

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();
}
的码云指数为
超过 的项目
加载中

评论(1)

落舞者
落舞者
貌似还能调用php OOS

oos 0.2.1 发布, C++ 的 ORM 框架

oos 0.2.1 发布,这是个 bug 修复版本,修复了 Ubuntu 13.10 的构建问题;移除了不必要的代码;改进了错误处理。 OOS 是一个 C++ 的 ORM 框架。旨在封装所有数据库后端功能,并对开发者提供统...

2014/01/16 08:20

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

OOS 0.2.0 发布,此版本添加了对 MS SQL Server 的支持;改进了 MySQL 后端的性能;修复了一些 bug。 OOS 是一个 C++ 的 ORM 框架。旨在封装所有数据库后端功能,并对开发者提供统一的访问 ...

2014/01/11 08:24

没有更多内容

加载失败,请刷新页面

没有更多内容

8
回答
支持的数据库类型太少了

只支持 支持的数据库: SQLite, MySQL,怎么不支持大型数据库,例如sqlserver、sybase、oracel啊? 性能和功能上有啥好处和坏...

OOS
2013/08/22 17:35

没有更多内容

加载失败,请刷新页面

没有更多内容

玩转运维编排服务的权限:Assume Role+Pass Role

什么是运维编排服务? 阿里云运维编排服务(Operation Orchestration Service,简称OOS)是云上的自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维...

07/10 10:32
2
0
玩转运维编排服务的权限:Assume Role+Pass Role

什么是运维编排服务? 阿里云运维编排服务(Operation Orchestration Service,简称OOS)是云上的自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维...

07/10 12:06
9
0
Java socket(三)使用TCP传输文件

``` public class SocketClient { public static void main(String args[]) throws Exception { Socket socket = new Socket("192.168.100.236", 2221); System.out.println("socket created...

2016/12/26 16:03
438
0
序列化中关于继承

- 实验1 ``` package com.youchuang.tigers; import com.sun.xml.internal.ws.developer.Serialization; import java.io.*; public class Tiger3 { static class Sub extends Super { privat...

2016/12/14 10:53
9
0
Java Socket(二)使用TCP传输对象

在Java Socket使用TCP的基础上,通过ObjectInputStream和ObjectOutputStream来读写对象。 ``` //传输的对象,需要序列化 package socket; import java.io.Serializable; public class MsgTO ...

2016/12/26 14:33
98
0
关于weka的使用————模型的建立

Classifier m_classifier = new MultilayerPerceptron(); Instances instancesTrain =m.instancesTrain("jdbc:mysql://localhost:3306/test","root","123456",2,"select openings,polite_wor...

2016/08/03 10:29
60
0
运维编排场景系列----给实例加到SLS机器组

场景简介 我们经常会有这样的运维场景,扩容一批机器需要配置SLS日志,对于已经配置好的SLS Logstore后,我们只需要将机器加到机器组里。 解决方案 传统的解决方案是登录每台ecs实例并安装l...

07/09 13:54
17
0
运维编排场景系列----给实例加到SLS机器组

场景简介 我们经常会有这样的运维场景,扩容一批机器需要配置SLS日志,对于已经配置好的SLS Logstore后,我们只需要将机器加到机器组里。 解决方案 传统的解决方案是登录每台ecs实例并安装l...

07/09 13:49
4
0
SharedPreferences封装及使用

//application中初始化 @Override public void onCreate() { super.onCreate(); initSharef(); } // 初始化SharedPrefence文件 private void initSharef() { sp = getApplicationContext().g...

2016/06/07 20:09
18
0
<Java IO流>学习日志(二)——对象的序列化与反序列化

一、首先创建需要序列化的类 ``` import java.io.Serializable; /* * 对象的序列化和反序列化 * 2016/10/7 * 对象的序列化需要实现Serializable */ public class Student { private String n...

2016/10/07 23:00
4
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部