メモリにC++オブジェクトのコレクションがあり、SQL文を使用してそのオブジェクトをクエリしたいとします。私は、データベース行の列のようなオブジェクトのプロパティを公開するために、ある種のインタフェースを実装するつもりです。これを実現するライブラリがありますか? 本質的に、私は.NETプラットフォームを使用せずにLINQのようなものを達成しようとしています。SQL文を使用してメモリ内オブジェクトを照会する
答えて
C++オブジェクトは、SQLテーブルと同じものではありません。
SQL構文を使用してオブジェクトを照会する場合は、まずオブジェクトをテーブル構造(ORM、object-relational-mapping)にマップ/保持する必要があります。 Linq以外にも数多くの素晴らしいORMソリューションがあります。
オブジェクトをSQLテーブルに表示したら、SQLエンジンを参照して大量の作業を行う必要があります。ほとんどのSQLプラットフォームは、ほとんどまたは常にメモリ内にテーブルを保持するように設定できます。
代わりに、オブジェクトをキャッシュするように特別に設計されたシステムが考えられます。 Linuxでは、memcachedが主な選択肢です。
私もこの種のものを探していましたが、SQLliteが私に最も近いと思われます。
オブジェクトの世界とエンティティ・リレーショナル・データ(ER)の間に落とし穴があります。その番号はObject-relational impedance mismatchです。基本的には、オブジェクトの概念をオブジェクト・リレーショナル・マッピング(ORM)と呼ばれるリレーショナル・データベースの概念に「マップ」する必要があるということです。
多態性の例:派生クラスはER概念ではないので、たとえば、同じクラスに属するすべてのオブジェクトのすべての属性がすべての「親」属性を持つ同じテーブルに格納されます OR派生クラス(オブジェクト)は、派生元の抽象クラスと同じテーブルに格納されます。
コミュニティでサポートされているORMを使用するのが最善でしょうが、動機が正しい場合は、自分のORMソリューションを利用することで利益を得ることができます。
当社では独自のORMソリューションを開発しました(6年前に開始されたので、C++で書かれ、モデラーはWindowsデスクトップアプリケーションでした)。しかし今はおそらくADO.NET Entity Framework(LINQの "big" brother)または別のサポートされているORM
- 1. SQLを使用してExcel文書を照会する方法
- 2. メモリ内のファイルを照会
- 3. JPAでメモリ内データを照会する
- 4. ES6テンプレート文字列を使用してSQLデータベースを照会
- 5. SQLステートメント内の "LIKE"を使用して、文章内の単語を順序に関係なく照会する
- 6. LINQを使用してSQLデータベースを照会しています
- 7. RapidJSON文字列変数を使用してオブジェクトを照会する方法
- 8. PowerShellを使用してSQL Serverを照会する方法は?
- 9. Shiny Appを使用してSQL Serverデータベースを照会する
- 10. SQLを使用してXMLデータ列を照会する
- 11. オブジェクトを使用してEntity Frameworkを照会する
- 12. IConfServiceを使用して属性でオブジェクトを照会する
- 13. Pythonを使用してSQLを照会します
- 14. linqを使用してオブジェクト配列を照会します
- 15. アプリケーションバーで検索を使用してフラグメント内を照会する
- 16. Linqを使用してXML文書を照会する
- 17. XElementを使用してネームスペース内のノードを照会します
- 18. レルム内のリスト内のオブジェクトを照会
- 19. SQL - メモリにロードする、またはデータベースを照会する
- 20. Cloud Firestoreを使用して配列内のキーでオブジェクト値を照会
- 21. Linq文字列を使用してintを照会します。
- 22. テキストエリアを使用したユーザー入力としてのSQL照会
- 23. Excel VBAの問題を使用してSQL Serverを照会
- 24. "、"セパレータを使用してSQLデータベースからデータを照会
- 25. SQL Serverを使用してCosmosDBを照会
- 26. ディレクトリをリダイレクトしてhtaccess内の文字列を照会する
- 27. JPAを使用してリストメンバーと照会してオブジェクトをロードするベストプラクティス
- 28. Pythonを使用してメモリ内のオブジェクトを削除する
- 29. は、LINQクエリを使用して、ネストされたオブジェクトの照会
- 30. ハイライトを使用してフレーズクエリを照会
私はいくつかのプロジェクトでSQLiteを使いました。 MySQLには完全なメモリ内テーブル型もあります。 –