私はAndroidとデータベースが初めてで、DatabaseIncomeOutcome.javaクラスにこのメソッドがあります:
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE IF NOT EXISTS " + DATABASE_TABLE + "(" +
KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_IO + " TEXT NOT NULL, " +
KEY_NOTE + " TEXT NOT NULL);"
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
public DatabaseIncomeOutcome(Context c){
ourContext = c;
}
public DatabaseIncomeOutcome open(){
ourHelper = new DbHelper(ourContext);
ourDatabase = ourHelper.getWritableDatabase();
return this;
別のクラスからメソッドを呼び出したとき
DatabaseIncomeOutcome entry = new DatabaseIncomeOutcome(this);
entry.open();
どのように、いつonUpgrade
呼び出されましたか? を実行するたびに呼び出されentry.open()
ますか?
このスクリプトも追加したい
if (newVersion > oldVersion) {
db.execSQL("ALTER TABLE foo ADD COLUMN new_column INTEGER DEFAULT 0");
でonUpgrade
新しい列を追加し、
次に、「onUpgrade」をどのように呼び出すべきか、将来の開発で必要になる可能性がある場合に新しい列を追加できるようにします。
ありがとう...