2012年11月7日水曜日

SQLite を使う。

 アプリといえば必ずついて回るのがデータをどうするか。簡単なアプリでもデータを管理するのには悩みます。しかし、Android は標準でSQLite 対応しているので、これを使わない手はありません。

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 件のコメント:

コメントを投稿