2011-07-28 9 views
0

私はsqliteデータベースを使用するアプリケーションを持っています。現在、データベースにアクセスするためにメインクラス内から呼び出すデータベースヘルパークラスがあります。次に、検索したアイテムをカーソルに一時的に保存します。データベースにアクセスするたびに、dbを開いて新しいカーソルを作成し、dbにクエリを実行して結果をカーソルに追加し、カーソルから情報を引き出し、カーソルを閉じてdbを閉じ、次に表示する必要があります。ユーザー。Android - データベースのデータを参照する最良の方法

私はdbにアクセスするたびにdbヘルパークラスにアクセスしています 毎回新しいカーソルを作成しています そして私はsqliteクエリを作成しています。

私のような何かを行うに私のコード変更する必要がある場合、私は思っていた: オープンDB ストアをカーソル 近いデシベルにすべてのデータを

私は情報にアクセスしたい時はいつでも、私はだけではなく、カーソルを参照することができますdbヘルパークラスを再度呼び出す必要はありません。

それとも、代わりに何かのようにやって配列にデータを保存するために、より効率的である:配列 近いカーソルにカーソルとデータ格納内でカーソル ループに オープンデシベル ストアデータを 近くのデシベル

これらの間でどのような違いがありますか(処理時間とメモリ使用量)は、最小のリソースを使用するこれを行うさらに効率的な方法ですか?配列やカーソルを使う方が速いのですか?私は不必要な機能を呼び出すCPU時間を無駄にしたり、膨れたオブジェクトを格納するより多くのメモリを使用したりしたくありません。

答えて

1

選択したクエリを一度実行してそのデータをアクティビティに使用する場合は、カーソルからArrayList or Hashmapを作成してカーソルを閉じる必要があります。

データベースに何度もアクセスする必要があり、クエリを実行して別の結果が得られる場合は、カーソルを使用してカーソル更新からデータを取得して、カーソルを閉じる必要があります。

あなたはヘルパークラスを使用していますので、処理が不思議ではありません。

これまでヘルパークラスのオブジェクトを作成し、接続を開き、クエリを実行してデータを返し、アクティビティ内のカーソルからデータをフェッチし、UIを更新してデータベースを閉じます。

これは通常の方法であり、また良い方法です。

関連する問題