Android預置數據庫我正在開發一個Android應用程序,在用戶使用該應用程序之前,它需要在應用程序的數據庫中填充幾個條目(一個表,有1000-10000行)。我已經看過一些教程,我不確定做這件事的最佳方法。我是否應該在每次啟動應用程序時檢查數據庫是否存在,如果沒有數據庫,應該創建數據庫并插入我需要的數千條記錄嗎?還是有更好的方法來處理這個問題?理想情況下,它可以作為應用程序安裝過程的一部分,但我不確定這是否可行。如有任何反饋,將不勝感激。
3 回答
呼喚遠方
TA貢獻1856條經驗 獲得超11個贊
private static class settingsDatabaseHelper extends SQLiteOpenHelper{
//SQL String for creating the table required
private static final String CREATE_SETTINGS_TABLE = "CREATE TABLE tbl_settings(" +
"_ID INTEGER PRIMARY KEY AUTOINCREMENT," +
"VOIPUSERNAME TEXT," +
"VOIPAUTHID TEXT," +
"PASSWORD TEXT," +
"VOIPDISPLAYNAME TEXT," +
"SIPPROXYSERVER TEXT," +
"SIPREGISTRAR TEXT," +
"SIPREALM TEXT," +
"EXPIRESTIME INTEGER);";
//constructor
public settingsDatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_SETTINGS_TABLE);
ContentValues initialValues = new ContentValues();
initialValues.put("VOIPUSERNAME", "xxxxx");
initialValues.put("VOIPAUTHID", "xxxxxxxxxx");
initialValues.put("PASSWORD", "xxxxxx");
initialValues.put("VOIPDISPLAYNAME", "xxxxxxxxx");
initialValues.put("SIPPROXYSERVER", "xxxxxxxxxxxxx");
initialValues.put("SIPREGISTRAR", "xxxxxxxxxxx");
initialValues.put("SIPREALM", "xxxxxxxxxx");
initialValues.put("EXPIRESTIME", xxxxxxxxxxx);
Log.d("1.6", "gets to here");
db.insert(SETTINGS_TABLE, null, initialValues);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to " +
newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + SETTINGS_TABLE);
onCreate(db);
} }//end helper class}
瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
- 3 回答
- 0 關注
- 388 瀏覽
添加回答
舉報
0/150
提交
取消
