AndroidでSQLiteデータベースを利用する(その1)
Androidでデータベースを利用するにあたって重要なクラスは、SQLiteOpenHelperクラスとSQLiteDatabaseクラスである。
[SQLiteOpenHelperクラス]
http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
[SQLiteDatabaseクラス]
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
SQLiteOpenHelperクラスはデータベース作成およびバージョン管理をしてくれるヘルパークラスである。
データベースが存在するならば開き、存在しなければ作成を行い、さらに必要に応じてアップグレードするといった処理をより簡単に実現してくれる。
その上で、SQLiteOpenHelperのメソッドを使用し、直接的なデータベース操作(挿入・検索・削除)を行うSQLiteDatabaseクラスのインスタンスを取得することになる。
/** * SQLiteOpenHelperのサブクラスSampleSQLiteOpenHelperの実装 */ class SampleSQLiteOpenHelper extends SQLiteOpenHelper { // コンストラクタ public SampleSQLiteOpenHelper(Context c) { super(c, "sqlite_sample.db", null, 1); } /** * データベースファイル初回使用時に実行される処理 */ @Override public void onCreate(SQLiteDatabase db) { // テーブル作成のクエリを発行 db.execSQL( "create table sample_table ( " + "_id integer primary key autoincrement, " + "data integer not null );"); } /** * データベースのバージョンアップ時に実行される処理 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // テーブルの破棄と再作成 db.execSQL("drop table sample_table;"); onCreate(db); } }
例えば、上記のようにSQLiteOpenHelperのサブクラスを実装する。
コンストラクタでコンテキスト、データベース名、バージョン番号を渡している。
第三引数にはSQLiteDatabase.CursorFactroy型の引数を渡すことになるのだが、基本的にnullでよい。
onCreate()はデータベースファイルが初めて使用される際に自動で呼ばれるため、一般的にはテーブル作成の処理を記述することになる。
onUpgrade()はデータベースバージョンが更新された際に呼ばれるメソッドである。
今回はテーブルの破棄と再作成を行うように記述してみた。
SQLiteOpenHelperのサブクラス実装ができたら、いよいよデータベース操作を行うために、SQLiteDatabaseのインスタンスを取得する。
// SampleSQLiteOpenHelperのインスタンス生成 SampleSQLiteOpenHelper hlpr = new SampleSQLiteOpenHelper(getApplicationContext()); // getWritableDatabase()を使用してデータベースを開き、SQLiteDatabaseのインスタンス取得 SQLiteDatabase db = hlpr.getWritableDatabase();
あとは、dbインスタンスを使用して、データベースに対する操作を行うことになる。
つづく。
TECHNICAL MASTER はじめてのAndroidアプリ開発 第2版 Android Studio 2対応
- 作者: 山田祥寛
- 出版社/メーカー: 秀和システム
- 発売日: 2016/12/16
- メディア: 単行本
- この商品を含むブログを見る
- 作者: 中山清喬,国本大悟
- 出版社/メーカー: インプレス
- 発売日: 2014/08/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (18件) を見る