爲Android開發應用程序,我正在尋找一種方法來創建數據庫表並初始化它,但僅在安裝應用程序或首次啓動時執行一次。在第一次創建並初始化表之後,我不希望此代碼再次出現,因爲它將大量數據插入表中。 唧唧我能做到嗎?android初始化數據庫安裝一次
0
A
回答
0
擴展SQLiteOpenHelper
public class MyDB extends SQLiteOpenHelper {
Context c;
public MyDB(Context c) {
super(c, DB_NAME, null, DB_VERSION);
this.c=c;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table "+DB_TABLE+" (_id integer primary key autoincrement, "+COL_1+" text, "+COL_2+" text, "+COL_3+" text, "+COL_4+" integer, "+COL_5+" integer, "+COL_6+" text);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int from, int to) {
Log.i("onUpgrade", "From Version "+from+" to version "+to);
switch(from) {
case 0:
db.execSQL("DROP TABLE IF EXISTS wine;");
db.execSQL("create table "+DB_TABLE+" (_id integer primary key autoincrement, "+COL_1+" text, "+COL_2+" text, "+COL_3+" text, "+COL_4+" integer, "+COL_5+" integer, "+COL_6+" text);");
case 1:
db.execSQL("ALTER TABLE "+DB_TABLE+" ADD COLUMN "+COL_6+" text;"); //comment was not in the original database
break;
}
}
0
你需要創建一個類,它是擴展SQLLiteHelper並覆蓋onCreate()方法創建表並插入任何行。在此之後,數據庫查詢將不會被執行,除非您獲得它的可寫實例並傳入您自己的查詢。
如果您希望將來對應用進行更改,則需要重寫onUpgrade()方法以更改數據庫。
0
檢查數據庫是否在您的應用程序的每次啓動時都是空的,如果是的話插入您的數據,否則忽略。
相關問題
- 1. Hive安裝問題:Hive Metastore數據庫未初始化
- 2. django mssql安裝程序:初始化數據庫時出錯
- 3. 初始化SQLite數據庫的Android
- 4. NullPointerException當初始化數據庫android
- 5. OpenGL安裝/初始化
- 6. Azure數據庫初始化
- 7. 第一次初始化數據庫的SQL腳本
- 8. EF代碼第一次不進行初始化數據庫
- 9. Android選擇應用程序第一次初始化時的安裝存儲
- 10. 第一次安裝Heroku數據庫
- 11. 雖然初始化光標數據庫沒有初始化
- 12. 一次Hook DLL初始化
- 13. 只初始化一次
- 14. 數據讀取器初始化(再次)
- 15. 裝配。數據初始化4位值
- 16. 用數組或初始化初始化一個NSMutableArray初始化
- 17. 初始化數據
- 18. postgres安裝數據庫集羣初始化失敗(Postgresql版本9.4.4)
- 19. 在Windows 8.1上安裝PostgreSQL - 數據庫集羣初始化失敗
- 20. 安裝virtualenvwrapper首次,無法運行初始化掛鉤
- 21. LINQPad在安裝時「初始化失敗」?
- 22. Magento在初始化時安裝錯誤
- 23. 安裝,初始化Junit測試
- 24. 安裝Ruby腳本 - 初始化錯誤
- 25. IDesignTimeDbContextFactory試圖初始化數據庫首次
- 26. 初始安裝時數據庫版本爲零
- 27. JAVA初始化數據庫環境
- 28. 數據庫初始化錯誤與EF6
- 29. 防止HSQLDB來初始化數據庫
- 30. 如何初始化MySQL數據庫?
這樣,數據庫只創建並初始化一次。除非增加數據庫版本或更改數據庫名稱,否則不會重新創建或重新初始化。 –