SQLiteOpenHelper dbOpenHelper = new (ctx, nameofdb);
SQLiteDatabase db = dbOpener.getWritableDatabase();
私はこれらの両方に.close()
を呼び出す必要がありますか、またはちょうどそれらの1で十分ですか?はいの場合は、どちらですか?は私がSQLiteDatabaseとSQLiteOpenHelper
SQLiteDatabase
SQLiteOpenHelper
私が午前問題は、私はEclipseのDDMSビューにある特定の行が表示されないということですが、私はそれを得るためにカーソルを使用する場合、それは私がそのエントリを持っていないことを示しています。だから私はそれが正しくデータベースを閉じないことによって引き起こされるかもしれないのだろうか?助けることができる人は誰でも素晴らしいだろう。ありがとう!
[単一責任の原則](http://en.wikipedia.org/wiki/Single_responsibility_principle)についてはどうですか?私は 'SQLiteOpenHelper'クラスがデータベースを開く(作成する/更新する)ために[ヘルプ]のみを使用していると考えました。 –
@ LeonidSemyonov:単にクラスを拡張し、機能(新しいメソッドや実装インターフェース)を追加することで、余分な責任が追加されると主張することもできますが、OOD/OOPの基本原則です。 Androidでは、それ自体が 'SQLiteOpenHelper'を維持するジェネリックDBのヘルパークラスを作成することは珍しいことではありません。私の主張は、特定のケースでは、 'SQLiteOpenHelper'を拡張して、別のDB 'ヘルパー' POJOを持たずに、DBの 'ヘルパー'メソッドの* ALL *を提供することができます。 – Squonk
@Squonkは「開いているデータベースオブジェクトを閉じる」とは、アプリケーションで開いているすべてのSqliteDatabaseインスタンスを閉じることを意味します(複数の開いていると仮定して)か、現在のSqliteOpenHelperオブジェクトに関連付けられているインスタンスのみを閉じますか? – aandis