Som*_*omk 7 java sqlite android
是否可以重命名已在android中创建的数据库?
在我的应用程序更新中,我想重命名旧数据库并安装新的然后比较一些值,最后删除旧的.
我正在从assets文件夹中的sqlite文件进行创建.这就是为什么我不能重命名所有表并插入新表.
澄清:
旧数据库将只包含一个表,我需要将值与新(来自更新)数据库进行比较.
两个数据库都已从assets文件夹中的sqlite文件复制过来.
一旦我将旧数据库中的值与新数据库进行比较,我将删除旧数据库,并使用我比较的值在其位置使用new.
我想做的是重新命名旧的创建新的取而代之的所有事情.
Kev*_*gan 11
只需重命名文件.确保首先关闭数据库!
在您的活动类中调用它:
private void renameDatabase()
{
File databaseFile = getDatabasePath("yourdb.whatever");
File oldDatabaseFile = new File(databaseFile.getParentFile(), "yourdb_old.whatever");
databaseFile.renameTo(oldDatabaseFile);
}
Run Code Online (Sandbox Code Playgroud)
回应澄清.重命名旧数据库(如上所述),从assets文件夹中复制新数据库,打开两个数据库并进行比较.然后删除旧文件.
Flash大人是对的,你应该删除旧的数据库并复制新的\xe2\x80\xa6
\n\n假设您使用 a SQLiteOpenHelper,您可以使用和createDatabaseIfRequired();中的方法getReadableDatabase()getWritableDatabase()
private boolean checkOldDatabase() {\n Log.d(Constants.LOGTAG, "OperationDbHelper.checkDatabase");\n File f = new File(DB_PATH + OLD_DB_NAME);\n return f.exists();\n}\n\npublic void createDatabaseIfRequired() throws IOException, SQLiteException {\n if (!checkOldDatabase()) {\n // do db comparison / delete old db / copy new db\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5038 次 |
| 最近记录: |