2016-08-23 69 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

我只想创建一些用户只能从应用程序中读取的表 –

相关问题