我正在编写一个安卓应用程序。我需要创建一个 SQLite 数据库并在创建时填充它。所以我试图将它填充到它的 onCreate() 函数中。但是,要在数据库中插入数据,需要使用 db.getWritableDatabase()。但是不能在数据库的 onCreate() 函数中执行此操作,因为这意味着在创建数据库期间调用数据库(它会引发错误)。那么如何在数据库的 onCreate() 函数中使用 getWritableDatabase() 呢?
问问题
2447 次
1 回答
5
但是,要在数据库中插入数据,需要使用 db.getWritableDatabase()。
不,你需要一个SQLiteDatabase
实例。一种是提供给onCreate()
你的方法SQLiteOpenHelper
——使用它。
例如,在这个示例项目中,我有一个onCreate()
如下所示:
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.beginTransaction();
db.execSQL("CREATE TABLE constants (_id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, value REAL);");
ContentValues cv=new ContentValues();
cv.put(TITLE, "Gravity, Death Star I");
cv.put(VALUE, SensorManager.GRAVITY_DEATH_STAR_I);
db.insert("constants", TITLE, cv);
cv.put(TITLE, "Gravity, Earth");
cv.put(VALUE, SensorManager.GRAVITY_EARTH);
db.insert("constants", TITLE, cv);
// several more inserts here
cv.put(TITLE, "Gravity, Venus");
cv.put(VALUE, SensorManager.GRAVITY_VENUS);
db.insert("constants", TITLE, cv);
db.setTransactionSuccessful();
}
finally {
db.endTransaction();
}
}
于 2013-03-27T15:58:06.007 回答