2016-08-23 72 views
0

在我的應用程序中,我需要一個帶有不同表格的數據庫,然後在應用程序中閱讀。我知道如何創建一個新的數據庫,使用SQL在應用程序中編寫和讀取它,但實際上我不知道什麼程序(以及哪種格式)可以在將數據庫添加到資產文件夾之前編寫數據庫。如何爲Android應用程序編寫數據庫

請問誰能幫我解決這個問題嗎?

+0

https://developer.android.com/guide/topics/data/data-storage.html#db –

回答

0

您可以使用SQLite,這是一個基於設備的SQL實現。請注意,這隻會支持大多數傳統關係數據庫中的SQL操作子集。如果您需要完整的SQL支持,您必須編寫其他地方託管的後端Web服務。

0

您可以使用SQLiteOpenHelper來創建您的數據庫。

這裏是我的示例創建簡單的數據庫具有儲存與市2日提交的是City_ID和CITY_NAME:

public class DiLiBusDatabaseHelper extends SQLiteOpenHelper { 
private static final String DATABASE_NAME = "DiLiBusDB"; 
private static final String TBL_CITY = "City"; 
private static final String CITY_ID_FIELD = "City_ID"; 
private static final String CITY_NAME_FIEDL = "City_Name"; 
private SQLiteDatabase database; 
private static DiLiBusDatabaseHelper mInstance = null; 
Context context; 
//synchronized to make sure have only one thread is run at the same time 
public static DiLiBusDatabaseHelper getInstance(Context context){ 
    if(mInstance == null){ 
     mInstance = new DiLiBusDatabaseHelper(context.getApplicationContext()); 
    } 
    return mInstance; 
} 

private DiLiBusDatabaseHelper(Context context) { 
    super(context, DATABASE_NAME, null, 2); 
    this.context = context; 
    this.database = getWritableDatabase(); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    String query = "CREATE TABLE"+" "+TBL_CITY+"("+CITY_ID_FIELD+" "+"TEXT PRIMARY KEY,"+CITY_NAME_FIEDL+" "+"TEXT"+");"; 
    String queryIndex = "CREATE INDEX city_name_idx ON"+ " "+TBL_CITY +"("+CITY_NAME_FIEDL+");"; 
    db.execSQL(query); 
    db.execSQL(queryIndex); 
} 

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

} 

} P/S:我使用Singleton pattern的創建數據庫。此外,如果要保存在SD卡你的數據庫,U可以檢查此link

+0

對不起,我不是我正在尋找的東西:我需要在我的應用程序中有一個在應用程序之外創建的數據庫。無論如何謝謝 –

+0

1.你想製作一臺服務器來保存你的數據庫,並且你的應用程序與服務器連接以獲取數據嗎? 或者您是否想在應用程序之外創建SQLite,然後將其嵌入到應用程序中以供使用? –

+0

我只想創建一些用戶只能從應用程序中讀取的表 –

相關問題