2011-02-26 64 views
7

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

的工作流程我已经记如下:

  1. 定义一个类记录与数据成员
  2. 供应这个类来包装它创建了一个合适的表

通过< <和>>为整个课程简单的序列化和反序列化。

这是现实还是我必须自己写操作员?理想情况下,我不想担心数据如何进入数据库以及如何存储数据......易于使用是我的主要关注点,而不是灵活性或性能。

我正在寻找沿GAE datastore python interface行的东西。

非常感谢, 阿里克

回答

3

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

SOCI是简单,是推动样的理念,而debea是更加注重ORM。

顺便说一句,如果SQLite/SQL /请求不是强制性的,你可以使用Boost serialization framework

只是我的两分钱

编辑:

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

我认识的人几年来都有同样的问题。他终于找到了一个解决方案:他告诉我clang现在可用(它编译提升),并且他使用它来生成基于代码中标记的序列化代码(他告诉我TR1中有标记支持,但是我不是专家)。这是宝贵的反馈,而我在这个领域的尝试让我对解决方案表示赞同。

+0

我意识到了SOCI以及让我忽略它的原因是ORM必须被明确地编程。我发现这给了很大的灵活性,但对于具有简单数据类型的类我觉得这应该是真正的自动化。尽管Debea不完全透明,但它非常有趣。我会将这个问题再打开一段时间,看看是否有其他内容出现 - – ARF 2011-06-29 13:54:54

+0

查看我的编辑。永远找不到一个体面的解代码生成似乎是你的最佳途径...祝你好运! – neuro 2011-06-29 15:14:24

+0

@neuro永远不要说永远! quince-lib.com表明,你可以走得比你想象的更远,没有反思,也没有代码生成。 – slyqualin 2014-08-18 00:51:37

3

Quince是一个图书馆,几乎完全符合提问者的要求。见quince-lib.com

(完全披露:我写了。)

0

刚才提过这个问题。从那时起,Hiberlite已经开发完成,并且声称几乎完全符合你的要求。

它不支持与< <和>>(Boost。序列化的确如其他人所提到的那样,但它不会存储在SQL DB中);然而,使用它似乎很容易。