SQLiteOpenHelper
SQLiteDatabase
これらの2つ使えば、簡単にSQLite データベースが使えます。
SQLiteOpenHelper は、これをスーパークラスとしたサブグラスを作成し、サブラスのコンストラクタでスーパークラスのコンストラクタを呼ぶようにし、以下のメソッドをオーバーライドします。
public void onCreate(SQLiteDatabase db)
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
これらは、抽象化されたメソッドなので、必ずオーバーライドして実装する必要があります。また、コンストラクタですが、スーパークラスでは、
SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version)
として、定義されてます。
サブクラスのコンストラクタでは、必要な引数のみ受けるようにして、スーパークラスのメソッド呼ぶ時に加工して呼ぶのが良いです。
ここで、色々な文献をみてもしっくり来ないのが、CursorFactory です。どうやら、独自のクエリの結果セットを使う時に指定するらしいのですが、そのようなことはまずないので null 指定でOKだとか、まあ、問題ないならばそれ以上は追求しないことに。
最後の version も、バージョン管理するまでもないものには 1 でいいでしょう。
さて、SQLiteDatabase がどこかに行ってますが、これは、SQLiteOpenHelper の以下の2つのメソッド、
getWritableDatabase()
getReadableDatabase()
返します。
返されたオブジェクトを使って、データベースとやりとりします。
0 件のコメント:
コメントを投稿