11

C++ で DB を使用するのは非常に面倒です。統合システムを使用してレイヤー全体を抽象化 (別名 Hibernate) できるように Java に移行したときは新鮮でした。

DB 用の C++ 抽象レイヤーがいくつかありますが、それらは通常ベンダー固有であり、実際の C API をラップする薄いレイヤーにすぎません。C ++の休止状態のようなものに出くわしたり、この問題のドメインを見ているグループやオープンソースプロジェクトを知っている人はいますか.

4

6 に答える 6

7

Hibernate のような C++ ライブラリは知りませんが、確かにベンダー固有ではないライブラリがあります: SOCIDTL

于 2009-01-17T23:16:19.403 に答える
3

あなたの痛みが分かります。データベース アクセス、XML 処理、スレッド化、およびアプリケーションで一般的に必要とされるその他すべてのために、別のライブラリをすぐに使用するようになります。このため、私は Qt をよく使用します。Qt は、プログラムで必要とされる最も一般的な機能 (データベース アクセス、XML 処理、スレッド化、GUI ウィジェットなど) を提供します。彼らの SQL クラスはかなりまともで、多くのデータベースで動作します。しかし、多くのオブジェクト関係マッパーのように SQL を抽象化するわけではありません。

于 2009-01-18T11:38:18.780 に答える
3

QHibernateという名前のオープン ソース ライブラリを開発しました。

QHibernate は、C++ および Qt Framework 用の Hibernate ORM (Object Relation Mapping) ポートです。現在のバージョンは概念実証作業です。PostgreSQL 9.4 および Qt 5.4.1 で使用されます。

特徴

  • Qt5
  • PostgreSQL
  • クラス マッピング xml
  • クラス マッピング xml
  • 休止状態の構成 xml
  • 1 対多、1 対 1、多対 1 マッピング

詳細、ソース、およびダウンロードのリンクは次の場所にあります: QHibernate

于 2016-01-28T11:34:57.290 に答える
0

.NetでC++を使用している場合は、nhibernateを使用します。2.0は休止状態の3.0とほぼ同じであり、非常に堅牢です。

于 2009-01-17T21:21:36.293 に答える
0

もう 1 つのアプローチは、コード合成 xsd
のような C++ オブジェクト <-> xml マッピング です。クラスを変更する必要がある場合、直接の休止状態/シリアル化アプローチはあまり好きではありません。

于 2009-07-30T22:00:34.337 に答える