1

Objectという名前のテーブル(もちろん)を持つSQLiteデータベースがあります。私のアプリケーションでは、そのテーブルとそのすべてのフィールドにアクセスする必要があります。データベースにクエリを実行し、カーソルから必要なすべての情報を問題なく取得できます。問題は、次にカーソルをどうするかを決めることです。現在、オブジェクトというクラスを作成することを考えています。これには、クエリによって設定されるテーブル内のすべての列のフィールドがあります。これはとても... 非効率的です。オブジェクトが使用するためにテーブルにあるすべての列を書き出す必要なしにこれを行う方法がわかりません.DRYに違反しているようです. これを行うためのより良い方法はありますか?

私の最終目標は、テーブル内のすべての行にアクセスして、その行に必要な情報を取得できるようにすることです。たとえば、これを使用して ListView にデータを入力します。これがあいまいすぎる場合はお知らせください。明確にするよう努めます。

ありがとう!

編集: ライブラリdb40を見つけました。ライブラリは、モバイル アプリケーションとしてはやや大きい (40 mb) ようです。誰もこれを経験していますか?私が読んだことはすべて、それが良いことを示しているようです. 情報を見つけたら、さらに投稿します。

4

1 に答える 1

1

これを行うためのより良い方法はありますか?

これは非常に「幅広い」質問であり、個人的な要件と、開発者にとって何がより快適かによって異なります。私はあなたのアイデアを使用しています。それは私にとってあなたが使用できる最高のものです。

ORM一般に、 (オブジェクトと関係のマッピング)を作成する必要があると言えます。これは非常にクリーンで効率的なアプローチです (私の意見)。もちろん、使用するのが最善の解決策ではない場合もありますORM(このケースに会ったことはありませんが、聞いたことはあります)。私はほとんどの場合、自分で定義ORMしたものを使用しますが、それには時間がかかりますが、結果は完成したフレームワークに対して重要です.

どちらにも長所と短所があります。独自ORMのソリューションは、具体的なソリューション (主にクエリなど) 向けに設計および最適化されているため、はるかに高いパフォーマンスを発揮します。

->あなたが言及したことを実行して、列に等しいプロパティを持つデータベース内のテーブルを表すオブジェクトを作成することをお勧めします。私はこれを仕事で使用していますが、パフォーマンスに問題が発生したり、アプリケーションでバッテリーの消費量が多すぎたりすることはありませんでした。

また、データベースから直接ではなく、オブジェクトの「コピー」からデータをユーザーに表示すると、はるかに安全になります。ユーザーは、表示された結果で好きなことを行うことができます (危険なシンボルやハックを追加することができます) が、データベースを変更して更新する前に、これを簡単に確認できるようになりました。

あなたのソースコードは見栄えがよく、別の開発者があなたのコードで迷子になることはありません。すべてが明確になり、将来の更新が容易になります。

このことについて「私の意見」を提供したので、決定を下すのに役立つことを願っています.

于 2013-08-11T16:07:10.910 に答える