2016-11-19 46 views
0

我對如何在Android Studio中操作SQL Lite數據庫感到困惑。我想要的是讓用戶能夠不斷地添加和搜索數據庫中的元素。我感到困惑的是,似乎大多數關於此主題的初學者教程將在每次執行「應用程序」時在MainActivity中創建一個數據庫,這導致我相信新的數據庫是從頭開始創建的,而不是用新的數據庫更新信息(或單獨留言和查詢)。例如,在一個類名DatabaseHelper我有段:適用於Android的SQL Lite數據庫持久存儲器

public DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, 1); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(CreateTable1String); 
     db.execSQL(CreateTable2String); 
    } 
    ... // Then methods to add, query etc. 

然後在主:

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     DatabaseHelper db = new DatabaseHelper(this); 

... // Then do stuff with the database 

} 

任何見解成什麼樣,我錯理解大加讚賞。

回答

1

不,每次運行此代碼段時都不會創建數據庫。

在您的示例中,運行創建表的SQL腳本的onCreate方法。但是在發佈的代碼中沒有對此方法的調用。這不是一個意外。你不明確地調用這個方法,Android一次,當DatabaseHelper被第一次實例化時。在發佈的代碼中有new DatabaseHelper(this);。與您可能認爲的相反,這並不意味着將會有一個致電onCreate的電話。創建這個類的實例並調用onCreate方法是非常不同的事情。

相關問題