2015-10-10 84 views
1

我正在做一個android項目並且即將使用sqlite創建本地數據庫。我已閱讀了幾個教程,但仍然混淆了什麼是創建android數據庫的好方法,我不知道爲什麼使用數據庫的內容提供程序很好,因爲這些uri的東西讓我更加困惑......任何人都可以推薦一個好的教程?什麼是創建android數據庫的好方法

此外,我是否需要爲每個要使用的數據表創建一個類,以擴展SQLiteOpenHelper?比方說,我需要在應用三個表..

  1. 用戶
  2. 地址
  3. 消息

然後做我需要做三個不同的SQLiteOpenHelper來管理數據?還是有辦法整合所有這些表並使用一個數據庫實例來訪問和操作數據? 謝謝

+0

你可以請參考http://stackoverflow.com/questions/2008528/static-database-class-to-use-with-any-activity/20052152#20052152之一。我已經給出了相同的答案 –

回答

0

我是一個初學者,在android工作室,我會推薦這爲每個想學習SQLite數據庫的人。人們稱爲Bucky是一個非常好的人,他可以教得很好,希望它有幫助,你不會遺憾的看着它

https://www.youtube.com/watch?v=_vQaOvPsLko

0

是的,它是更好地使我們分班授課,每個function.for每個功能你應該像註冊一個單獨的類,登錄等,並在每個班級必須擴展SQLiteOpenHelper 。

you can refer to this link.

SQLite的一個很好的教程由谷歌本身sqlite by google

0

看看這段視頻提供的,通常視頻幫助比閱讀教程更好:

https://www.youtube.com/watch?v=Aui-kFuXFYE

而對於第二個問題,您不需要爲不同的表創建不同的數據庫。一個數據庫可以處理多個表。

0

我自己我搬到Realm.io爲Android。它更快,更簡單,更乾淨的代碼,並且可以處理對象。如果有興趣與領域合作,我可以幫助你。

但是,如果你想繼續與SQLLite:

最好的做法是建立1個openHelperClass。

public class DatabaseHandler extends SQLiteOpenHelper { 


//Database Version 
private static final int DATABASE_VERSION = 1; 

//Database Name 
private static final String DATABASE_NAME = "myDB"; 

//Tables 

//Table1 + Columns 
private static final String TABLE_1 = "tb1"; //Table 

private static final String KEY_TB1_1 = "tb1col1"; 
private static final String KEY_TB1_2 = "tb1col2"; 

//Table2 + Columns 

private static final String TABLE_2 = "tb2"; 

private static final String KEY_TB2_1 = "tb2col1"; 
private static final String KEY_TB2_2 = "tb2col2"; 


//Constructor 
public DatabaseHandler(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

//onCreate 
@Override 
public void onCreate(SQLiteDatabase db) { 

    //Create TB1   
    String CREATE_TABLE = "CREATE TABLE " + TABLE_1 + "(" + 
    KEY_TB1_1 + " TEXT, " + 
    KEY_TB1_2 + " TEXT)"; 

    db.execSQL(CREATE_TABLE); 

    //Create TB2   
    CREATE_TABLE = "CREATE TABLE " + TABLE_2 + "(" + 
    KEY_TB2_1 + " TEXT, " + 
    KEY_TB2_2 + " TEXT)"; 

    db.execSQL(CREATE_TABLE); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

    db.execSQL("DROP TABLE IF EXISTS " + TABLE_1); 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_2); 

    onCreate(db); 

} 
} 

,你從這裏創建方法,從表中添加,刪除,更新數據繼續。

+0

已嘗試領域,但被遷移問題困擾,並停止使用它.. – eChung00

相關問題