2014-03-05 62 views
0

爲Android開發應用程序,我正在尋找一種方法來創建數據庫表並初始化它,但僅在安裝應用程序或首次啓動時執行一次。在第一次創建並初始化表之後,我不希望此代碼再次出現,因爲它將大量數據插入表中。 唧唧我能做到嗎?android初始化數據庫安裝一次

回答

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

這樣,數據庫只創建並初始化一次。除非增加數據庫版本或更改數據庫名稱,否則不會重新創建或重新初始化。 –

0

你需要創建一個類,它是擴展SQLLiteHelper並覆蓋onCreate()方法創建表並插入任何行。在此之後,數據庫查詢將不會被執行,除非您獲得它的可寫實例並傳入您自己的查詢。

如果您希望將來對應用進行更改,則需要重寫onUpgrade()方法以更改數據庫。

0

檢查數據庫是否在您的應用程序的每次啓動時都是空的,如果是的話插入您的數據,否則忽略。