C++ で DB を使用するのは非常に面倒です。統合システムを使用してレイヤー全体を抽象化 (別名 Hibernate) できるように Java に移行したときは新鮮でした。
DB 用の C++ 抽象レイヤーがいくつかありますが、それらは通常ベンダー固有であり、実際の C API をラップする薄いレイヤーにすぎません。C ++の休止状態のようなものに出くわしたり、この問題のドメインを見ているグループやオープンソースプロジェクトを知っている人はいますか.
C++ で DB を使用するのは非常に面倒です。統合システムを使用してレイヤー全体を抽象化 (別名 Hibernate) できるように Java に移行したときは新鮮でした。
DB 用の C++ 抽象レイヤーがいくつかありますが、それらは通常ベンダー固有であり、実際の C API をラップする薄いレイヤーにすぎません。C ++の休止状態のようなものに出くわしたり、この問題のドメインを見ているグループやオープンソースプロジェクトを知っている人はいますか.
あなたの痛みが分かります。データベース アクセス、XML 処理、スレッド化、およびアプリケーションで一般的に必要とされるその他すべてのために、別のライブラリをすぐに使用するようになります。このため、私は Qt をよく使用します。Qt は、プログラムで必要とされる最も一般的な機能 (データベース アクセス、XML 処理、スレッド化、GUI ウィジェットなど) を提供します。彼らの SQL クラスはかなりまともで、多くのデータベースで動作します。しかし、多くのオブジェクト関係マッパーのように SQL を抽象化するわけではありません。
QHibernateという名前のオープン ソース ライブラリを開発しました。
QHibernate は、C++ および Qt Framework 用の Hibernate ORM (Object Relation Mapping) ポートです。現在のバージョンは概念実証作業です。PostgreSQL 9.4 および Qt 5.4.1 で使用されます。
特徴
詳細、ソース、およびダウンロードのリンクは次の場所にあります: QHibernate
.NetでC++を使用している場合は、nhibernateを使用します。2.0は休止状態の3.0とほぼ同じであり、非常に堅牢です。
もう 1 つのアプローチは、コード合成 xsd
のような C++ オブジェクト <-> xml マッピング
です。クラスを変更する必要がある場合、直接の休止状態/シリアル化アプローチはあまり好きではありません。