在我的應用程序中,我需要一個帶有不同表格的數據庫,然後在應用程序中閱讀。我知道如何創建一個新的數據庫,使用SQL在應用程序中編寫和讀取它,但實際上我不知道什麼程序(以及哪種格式)可以在將數據庫添加到資產文件夾之前編寫數據庫。如何爲Android應用程序編寫數據庫
請問誰能幫我解決這個問題嗎?
在我的應用程序中,我需要一個帶有不同表格的數據庫,然後在應用程序中閱讀。我知道如何創建一個新的數據庫,使用SQL在應用程序中編寫和讀取它,但實際上我不知道什麼程序(以及哪種格式)可以在將數據庫添加到資產文件夾之前編寫數據庫。如何爲Android應用程序編寫數據庫
請問誰能幫我解決這個問題嗎?
您可以使用SQLite,這是一個基於設備的SQL實現。請注意,這隻會支持大多數傳統關係數據庫中的SQL操作子集。如果您需要完整的SQL支持,您必須編寫其他地方託管的後端Web服務。
您可以使用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
對不起,我不是我正在尋找的東西:我需要在我的應用程序中有一個在應用程序之外創建的數據庫。無論如何謝謝 –
1.你想製作一臺服務器來保存你的數據庫,並且你的應用程序與服務器連接以獲取數據嗎? 或者您是否想在應用程序之外創建SQLite,然後將其嵌入到應用程序中以供使用? –
我只想創建一些用戶只能從應用程序中讀取的表 –
https://developer.android.com/guide/topics/data/data-storage.html#db –