package net.gabuchan.androidrecipe.recipe101; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MySQLiteOpenHelper extends SQLiteOpenHelper { // データベースのバージョン private static final int DB_VERSION = 2; // データベース名 //① ↓ private static final String DB_NAME = "recipe.db"; private static String DB_NAME = "recipe.db"; //② TABLE を作る SQL文の配列 private String[] SQL4TABLE; //③ TABLE 作成の指示 public MySQLiteOpenHelper(Context context, String db_name, String[] tables) { super(context, db_name, null, DB_VERSION); if( db_name != null && ! db_name.equals("") ){ DB_NAME = db_name; } SQL4TABLE = tables; } //④ データベースパスの指定(名前だけでなくパス名もつけられる) public MySQLiteOpenHelper(Context context, String db_name) { super(context, db_name, null, DB_VERSION); if( db_name != null && ! db_name.equals("")){ DB_NAME = db_name; } } // オリジナル public MySQLiteOpenHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } // DBが新規作成された時に呼び出される。 @Override public void onCreate(SQLiteDatabase db) { try { // 引数の String の配列を SQL 文として実行する for (int i=0; i< SQL4TABLE.length; i++){ db.execSQL(SQL4TABLE[i]); } } catch ( SQLException e) { String error = e.toString(); //デバッグモードなどで見る } /* // テーブル作成 db.execSQL("CREATE TABLE IF NOT EXISTS people" + " (_id INTEGER PRIMARY KEY AUTOINCREMENT," + " name TEXT," + " age INTEGER);"); // 初期データを投入 ContentValues values = new ContentValues(); for (int i = 0; i < 30; i++) { values.put("name", "gabu" + i); values.put("age", i); db.insert("people", null, values); } */ } // DBのバージョンとコンストラクタで指定したバージョンが違う時に // 呼び出される。 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // バージョンを比較 if (oldVersion == 1 && newVersion == 2) { db.execSQL("ALTER TABLE people ADD COLUMN email TEXT;"); } } }