11

使用带有 C++ 的 DB 真是一团糟,当我转向 Java 以便能够使用统一的系统来抽象整个层(又名 Hibernate)时,这令人耳目一新。

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

4

6 回答 6

7

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

于 2009-01-17T23:16:19.403 回答
3

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

于 2009-01-18T11:38:18.780 回答
3

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

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

特征

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

您可以在此处找到一些详细信息、源代码和下载链接:QHibernate

于 2016-01-28T11:34:57.290 回答
1

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

于 2019-09-21T19:38:13.793 回答
0

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

于 2009-01-17T21:21:36.293 回答
0

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

于 2009-07-30T22:00:34.337 回答