【问题标题】:Hibernate like layer for C++用于 C++ 的 Hibernate 类层
【发布时间】:2009-01-17 20:05:39
【问题描述】:

在 C++ 中使用 DB 真是一团糟,当我转向 Java 以便能够使用统一系统将整个层抽象出来(又名 Hibernate)时,这让我耳目一新。

有几个用于 DB 的 C++ 抽象层,但它们通常是特定于供应商的,并且只有一个包装真正 C API 的薄层。有没有人遇到过类似 Hibernate for C++ 的东西,或者知道正在研究这个问题领域的小组或开源项目。

【问题讨论】:

标签: c++ hibernate persistence freeze-thaw


【解决方案1】:

我不知道任何像 Hibernate 这样的 C++ 库,但肯定有非供应商特定的库:SOCIDTL

【讨论】:

    【解决方案2】:

    我感觉到你的痛苦。您将很快使用单独的库来进行数据库访问、XML 处理、线程以及应用程序通常需要的所有其他内容。出于这个原因,我经常使用 Qt,它提供了程序中经常需要的最常见的功能(数据库访问、XML 处理、线程、GUI 小部件等)。他们的 SQL 类相当不错,并且可以与许多数据库一起使用。但它不像许多对象关系映射器那样抽象 SQL。

    【讨论】:

    • 很快,问题的标准答案不仅包括“boost”,还包括“Qt”哈哈。 +1
    【解决方案3】:

    我们开发了一个名为 QHibernate 的开源库。

    QHibernate 是用于 C++ 和 Qt 框架的 Hibernate ORM(对象关系映射)端口。当前版本是概念工作的证明。它与 PostgreSQL 9.4 和 Qt 5.4.1 一起使用。

    特点

    • Qt5
    • PostgreSQL
    • 类映射 xml
    • 类映射 xml
    • 休眠配置xml
    • 一对多、一对一、多对一映射

    您可以在这里找到一些详细信息、来源和下载链接:QHibernate

    【讨论】:

      【解决方案4】:

      现在有一个完全用 C++ 编写的 Hibernate 层。 你可以在 github 上找到它edwig/CXHibernate. 它带有完整的书面文档。

      【讨论】:

        【解决方案5】:

        如果您在 .Net 中使用 C++,请使用 nhibernate。 2.0 与 hibernate 3.0 大致相同,并且非常健壮。

        【讨论】:

          【解决方案6】:

          另一种方法是 C++ 对象 xml 映射,例如 codesynthesis xsd
          我从不喜欢直接休眠/序列化方法,如果您需要更改类,它会破坏太多。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-17
            • 2015-04-15
            • 1970-01-01
            • 2011-05-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多