我从资产中使用.db文件,如何创建新表?

时间:2013-10-25 09:58:46

标签: android sqlite android-sqlite

我是android dev的新手。我使用资产中的.db文件。我可以创建新表吗?

2 个答案:

答案 0 :(得分:0)

使用Firefox的Sqlite Manager插件打开Sqlite数据库。可以使用sqlite manager来创建和删除表。

答案 1 :(得分:0)

如果您的数据库位于资产中,则必须在应用程序开始时将其复制到本地路径中。请参阅以下代码:

try {
    String inputFilename = "database_name.db";
    InputStream input = getContext().getAssets().open(inputFilename);
    String outputFilename = getContext().getFilesDir().getPath()+inputFilename;
    OutputStream output = new FileOutputStream(outputFilename);
    byte[] buffer = new byte[1024];
    int length;
    while((length = input.read(buffer)) > 0) {
        output.write(buffer,0,length);
    }
    output.flush();
    output.close();
    input.close();
} catch (IOException e) {
    e.printStackTrace();
}

现在,您可以打开数据库:

SQLiteDatabase db = SQLiteDatabase.openDatabase(activity.getFilesDir().getPath()+"database_name.db",null,SQLiteDatabase.OPEN_READWRITE);
try {
    db.beginTransaction();
    db.execSQL("CREATE TABLE IF NOT EXISTS table_name ( ... )");
    db.setTransactionSuccessful();
} catch (SQLException e) {
    e.printStackTrace();
} catch (IllegalStateException e) {
    e.printStackTrace();
} finally {
    db.endTransaction();
}