8

クラスの準透過的なシリアル化と逆シリアル化を可能にする OO sqlite C++ ラッパーを探しています。

私が念頭に置いているワークフローは次のとおりです。

  1. データ メンバーを使用してクラス レコードを定義する
  2. 適切なテーブルを作成するラッパーにこのクラスを提供します

クラス全体の << および >> による単純なシリアライズとデシリアライズ。

これは現実的ですか、それとも自分で演算子を書く必要がありますか? 理想的には、データがデータベースにどのように取り込まれ、どのように保存されるかについて心配したくありません... 柔軟性やパフォーマンスよりも、使いやすさが主な関心事です。

GAE datastore python interfaceに沿ったものを探しています。

どうもありがとう、アリック

4

4 に答える 4

4

簡単なC++ORM(オブジェクトリレーショナルマッピング)ツールはありません。プロセスを簡単にすることを私が知っている2つのライブラリは次のとおりです。

SOCIはよりシンプルで、哲学においてブーストのようですが、debeaはよりORM指向です。

ちなみに、SQLite / SQL /リクエストが必須でない場合は、Boostシリアル化フレームワークを使用できます。

ちょうど私の2セント

編集:

まあ、ほとんど存在しないC ++リフレクションの可能性を考えると、私の謙虚な意見は、あなたがやりたいことをする唯一の方法はコードジェネレーターを使うことだということです。きちんとした、使いやすいC++パーサー/レクサー/...がなかったことを考えると、私はそれを行う広範なツールがないことを知っています。

私が知っている誰かが数年間同じ問題を抱えていました。彼はついに解決策を見つけました:彼はclangが使用可能になり(boostをコンパイルします)、コード内のマーカーに基づいてシリアル化コードを生成するためにそれを使用すると言います(TR1でマーカーがサポートされていると言いますが私は専門家ではありません)。これは貴重なフィードバックであり、この分野での私自身の試みにより、解決策について同意することができます。

于 2011-06-28T11:03:38.180 に答える
3

Quince は、質問者が求めていることをほぼ正確に実行するライブラリです。quince-lib.comを参照してください。

(完全な開示:私が書きました。)

于 2014-08-18T00:48:46.873 に答える
2

この質問は少し前に尋ねられました。それ以来、Hiberliteが開発され、ユーザーが求めていることをほぼ正確に実行すると主張されています。

<< および >> を使用した読み取り/書き込みはサポートしていません (Boost.serialization は、他の人が述べたようにサポートしていますが、SQL DB には保存されません)。ただし、それを使用するのは簡単なようです。

于 2017-05-17T22:36:11.197 に答える
1

sqlite_orm https://github.com/fnc12/sqlite_ormを試してください。必要なものを正確に提供します-クラスをテーブルにマップし、クラスメンバーを列にマップします

于 2019-11-12T14:26:42.177 に答える