特徴
状態:-
閲覧数:1,207
投稿日:2013-08-12
更新日:2013-08-12
SQLiteOpenHelper
・抽象クラスなので、定義されているメソッドを(2つ)実装する必要がある。(+コンストラクタ)
onCreate
・データベースを作成したタイミングで呼び出される
・通常はここでテーブルを作成する
onUpgrade
・データベースをバージョンアップしたタイミングで呼び出される
このヘルパークラスを利用するメリット
・DBオープン時、もしテーブルが存在していないときはテーブル生成を行うことができる
・テーブルのバージョンアップが感知できる
・抽象クラスなので、定義されているメソッドを(2つ)実装する必要がある。(+コンストラクタ)
onCreate
・データベースを作成したタイミングで呼び出される
・通常はここでテーブルを作成する
onUpgrade
・データベースをバージョンアップしたタイミングで呼び出される
導入メリット
このヘルパークラスを利用するメリット
・DBオープン時、もしテーブルが存在していないときはテーブル生成を行うことができる
・テーブルのバージョンアップが感知できる
コンストラクタ
概要
・SQLiteOpenHelperクラスを継承後、 コンストラクタで親クラス(スーパークラス)に引数を渡す
第1引数
・Context型インスタンス
・自身のアプリを示す場合は、getApplicationContext()を使って生成
第2引数
・データベースファイル名
・データベースを作成するファイル名を指定
・nullを指定した場合は、メモリ上にDBが作成される
・名前を指定した場合は、「/data/data/<パッケージ名>/database/<ファイル名>」に作成される
※ファイル名であって、テーブル名ではない。ここでは、DBの場所のみ作成
第3引数
・CursorFactory型インスタンス
・普通に使う分にはnull
第4引数
・DBバージョンを指定
・すでにリリース済みのDB構造を変更する場合はこのバージョンを変える
onCreateメソッド
概要
・「指定データベースが存在しない状態」でデータベースをオープンしようとすると、このメソッドが自動的に呼ばれる
・その際、引数として「新規作成されたデータベースのインスタンス」が渡される
・このインスタンスのexecSQLを使ってテーブルの作成を行う
・なお、既にデータベースが存在しているときに、このインスタンスが生成されたとしても、実行はされない