用于简单类序列化的C ++ / sqlite包装器?

时间:2011-02-26 00:37:35

标签: c++ sqlite serialization deserialization

我正在寻找一个OO sqlite C ++包装器,它允许类的准透明序列化和反序列化。

我想到的工作流程如下:

  1. 使用数据成员
  2. 定义类记录
  3. 将此类提供给创建合适表的包装器
  4. 通过<<简单序列化和反序列化和>>为整个班级。

    这是现实还是我必须自己编写运算符?理想情况下,我不想担心数据如何进入数据库以及如何存储...易用性是我主要关心的问题,而不是灵活性或性能。

    我正在寻找GAE datastore python interface

    的内容

    非常感谢, 阿里克

4 个答案:

答案 0 :(得分:4)

没有简单的C ++ ORM(对象关系映射)工具。我所知道的两个简化过程的库是:

社会变得更简单,在哲学上更像是一种提升,而debea更多是以ORM为导向的。

顺便说一句,如果SQLite / SQL /请求不是必需的,您可以使用Boost serialization framework

只是我的两分钱

编辑:

好吧,鉴于几乎不存在C ++反射的可能性,我的拙见是,你想做的唯一方法就是使用代码生成器。鉴于没有像样的,易于使用的C ++解析器/词法分析器/ ...,我知道没有广泛使用的工具。

我认识的人多年来也有同样的问题。他终于找到了一个解决方案:他告诉我clang现在可用(它编译了boost),并且他使用它根据代码中的标记生成序列化代码(他告诉我有标记的支持)在TR1,但我不是专家)。这是有价值的反馈,我自己在这个领域的尝试让我同意解决方案。

答案 1 :(得分:3)

Quince是一个几乎完全是提问者所要求的库。请参阅quince-lib.com

(完全披露:我写了。)

答案 2 :(得分:2)

这个问题刚才被问到了。从那以后,Hiberlite已经开发出来,并且声称几乎完全符合你的要求。

它不支持使用<<读取/写入和>> (正如其他人所提到的那样,Boost.serialization确实存在,但它不存储在SQL DB中);然而,使用它似乎很容易。

答案 3 :(得分:1)

尝试sqlite_orm https://github.com/fnc12/sqlite_orm。它提供了您所需的一切-将类映射到表,将类成员映射到列