2012-03-21 88 views
0

我正在使用SQLite爲我的應用程序創建數據庫表。我在網上搜索,但還沒有找到答案:我需要首先創建一個數據庫還是有每個應用程序的默認數據庫?Android應用程序創建表

我寫了下面的DBHelper類。它在一個單獨的文件中。如何在應用程序啓動時調用它?

public class DataBaseHelper extends SQLiteOpenHelper{ 

    final String CREAT_TABLE = "CREATE TABLE IF NOT EXIST `employee` ("+ 
    "`id` int(11) NOT NULL AUTO_INCREMENT,"+ 
    "`firstName` varchar(30) NOT NULL,"+ 
    "`lastName` varchar(30) NOT NULL,"+ 
    "PRIMARY KEY (`id`)"+ 
    ") ;"; 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(CREAT_TABLE); 
    } 
} 

回答

2

您不必自己創建數據庫中聲明你的數據庫名稱。 當您調用打開的幫助程序的superconstructor時,指定數據庫名稱(sqlite文件名稱)。 這將在需要時使用該名稱創建或更新數據庫(取決於您發送的版本號與當前版本號元數據)。

我不知道你的構造是什麼樣子,但我們說,它看起來像

public DatabaseHelper(final Context context) { 
    super(context, "mydatabase", null, 0); 
} 

然後SQLiteOpenHelper將創建一個名爲「MyDatabase的」數據庫,當你調用getReadableDatabase()或getWritableDatabase()。全部在the docs

+0

謝謝。我如何調用這個幫助函數來創建我的主要活動中的表在另一個文件/類? – Yang 2012-03-21 21:25:14

+1

幫手照顧最多。只需重寫'public abstract void onCreate(SQLiteDatabase db)'並在那裏創建表。如果您想在升級應用程序時支持升級數據庫(如果db版本增加),您可能需要在onUpgrade中創建表。如果您不關心舊數據,則可以刪除所有表並在onUpgrade中重新創建它們。只要確保在不增加數據庫版本並以某種方式處理數據庫的情況下不添加表格。否則,由於應用程序升級,當人們缺少表格時,您將會破壞應用程序。 – 2012-03-21 21:28:14

+0

我試圖將下面的代碼添加到我的主要活動中,但它不起作用。 DataBaseHelper myDbHelper = new DataBaseHelper(this); – Yang 2012-03-21 21:40:37

1

在構造

public DataBaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    }