Tôi đang tạo một ứng dụng cơ sở dữ liệu và chương trình của tôi hoạt động và tôi đã hiểu hầu hết các hướng dẫn mà tôi đã theo dõi. Tuy nhiên, một khía cạnh vẫn chưa rõ ràng với tôi.SQLiteOpenHelper - cơ sở dữ liệu được tạo ra như thế nào?
Có một lớp bên trong của MyDBHelper mở rộng SQLiteOpenHelper. Bên ngoài biến bao gồm SQLiteDatabase được gọi là d. Mã cho MyDBHelper là:
private static class MyDBHelper extends SQLiteOpenHelper {
MyDBHelper(Context c) {
super(c, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(DATABASE_CREATE);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVers, int newVers) {
Log.w(TAG, "Upgrading database from version " + oldVers + " to " + newVers + ", which will destroy all old data.");
db.execSQL("DROP TABLE IF EXISTS GM");
onCreate(db);
}
}
Câu hỏi của tôi là cách thực sự tạo cơ sở dữ liệu ban đầu. Nó xảy ra trong phương thức onCreate(), nhưng theo như tôi thấy, đây là không bao giờ được gọi là. Tôi hiểu rằng nó được gọi khi cơ sở dữ liệu được tạo ra lần đầu tiên, nhưng ở đâu? Và hơn nữa, làm thế nào nó được thông qua một db SQLiteDatabase? Tôi đã không thông qua bất kỳ cơ sở dữ liệu cho phương pháp. Và biến db SQLiteDatabase của tôi từ lớp bên ngoài được đặt thành cơ sở dữ liệu đã tạo như thế nào? Ai đó có thể nói chuyện với tôi như một thằng ngốc? Các phương thức