用于将c ++对象保存到数据库的库

时间:2012-03-19 08:46:27

标签: c++ database serialization boost

我目前正在使用boost序列化将对象图保存在xml文件中。该库很棒,它会自动恢复对象和所有成员指针和引用。

问题:  我需要随机访问数据(只读取一个对象,或只删除一个对象)。通过boost序列化,场景如下:

- 从文件加载所有对象

- 使用和修改对象

- 将所有对象再次归档

这样做的缺点是,如果只有一个对象发生了变化,我只想写入该对象的归档,而不是整个对象图形。这就是巨大的。

所以我正在寻找支持将所有对象存储到数据库的库,并且还支持boost和stl类型。目前我正在使用这些提升类型:

  • 提升多指数

  • Smart Ptr(shared_ptr,weak_ptr,scoped_ptr)

  • 可选的,变体

任何人都知道这样的图书馆或其附近的东西,或者知道如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

做这样的事情非常复杂。由于C ++(运行时环境)对自身一无所知,因此您必须自己编写代码。我的建议是将图形拆分为不同的文件并仅更新所需的文件(这意味着您必须自己控制序列化,而不是使用boost lib)。

答案 1 :(得分:2)

答案 2 :(得分:1)

也许Wt::Dbo?通过向您的类添加单个模板函数,Dbo将它们映射到SQL数据库。