我正在寻找一种方法来擦除ormlite数据库的所有数据或删除数据库(然后重新创建它)与android上的ormlite。
这时,我只能更改DatabaseHelper的DATABASE_VERSION。
但我必须编译应用程序。
有人知道处理这种情况的方法吗?
我正在寻找一种方法来擦除ormlite数据库的所有数据或删除数据库(然后重新创建它)与android上的ormlite。
@Julia的答案会很好。 ORMLite还支持从表中删除所有行的TableUtils.clearTable()
method call:
这不会清除数据库,但您可以依次清除每个表。类似于以下内容:
TableUtils.clearTable(getConnectionSource(),YourClassHere.class);
编辑:
@ max4ever指出context.deleteDatabase(...)比其他清理数据库的方式要快得多。但是这个调用将删除表定义,而TableUtils.clearTable(...)
保留模式完整。
你可以打电话
context.deleteDatabase(DATABASE_NAME);
在你的DatabaseHelper
类中扩展OrmLiteSqliteOpenHelper
。 context
被传递给构造函数中的DatabaseHelper
类。
下次需要数据库时,会重新创建它
@Override
public void onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource)
叫做。
要删除数据库,请使用以下命令:
this.connectionSource.close();
context.deleteDatabase(DATABASE_NAME);
要重新创建/打开当前数据库,请使用以下命令:
SQLiteDatabase db = context.openOrCreateDatabase(DATABASE_NAME, 0, null);
this.connectionSource = new AndroidConnectionSource(db);
您必须在数据库帮助程序中保留对上下文的引用。