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