2010/11/17

【Android】SQLite でのDBとテーブルの作成

 
Android の記憶領域は iアプリのスクラッチパッド MIDlet のレコードストアと
違って、完全なデータベースです。
 
 
そんな Android アプリで、
 
プログラム内で データベース&テーブル を作成する手順ついて。
android_logo2
現在のバージョンでは createDatabase() メソッドは存在しないので、
 
SQLiteOpenHelper クラスサブクラス化する必要がある。
 
もっとも単純なサブクラス例。
 

public class DatabaseHelper extends SQLiteOpenHelper{

 
    DatabaseHelper( Context context ){
        super( context, DATABASE_NAME, null, DATABASE_VERSION );
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "CREATE TABLE … ";
        db.execSQL(query);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ 
    }

}

 
呼び出し側の Activity で、new DatabaseHelper(this); とインスタンスを生成
するだけでは
 
データベースは作成されません。
 
テーブルも同様。Android 2.2 で確認取りました。
 
 
インスタンスを生成した後 dbhelper.getWritableDatabase(); を呼び出した
段階で onCreate() が呼び出され SQL が実行されます。
 
インスタンス生成と同時に作成されるわけではない、ってのがポイントですね。

0 件のコメント:

コメントを投稿