使用 ormlite 库以编程方式删除 sqlite 数据库的数据
我正在寻找一种方法来擦除 ormlite 数据库的所有数据或使用 android 上的 ormlite 删除数据库(然后重新创建它)。
这个时候我只能更改DatabaseHelper的DATABASE_VERSION。
但我必须编译该应用程序。
有人知道处理这种情况的方法吗?
I'd looking for a method to erase all data of a ormlite database or delete the database (and then recreate it) with ormlite on android.
At this time, I can only change the DATABASE_VERSION of the DatabaseHelper.
But I have to compile the application.
Does someone know a method to handle that case?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
@Julia 的回答会很好。 ORMLite 还支持
TableUtils.clearTable()
方法调用,它会从表中删除所有行:这不会清除数据库,但您可以依次清除每个表。像下面这样:
编辑:
@max4ever 指出 context.deleteDatabase(...) 比其他清除数据库的方法要快得多。但此调用将删除表定义,同时 TableUtils.clearTable(...) 保持架构不变。
@Julia's answer will work well. ORMLite also supports a
TableUtils.clearTable()
method call which removes all rows from a table:That won't clear a database but you can clear each table in turn. Something like the following:
Edit:
@max4ever pointed out that context.deleteDatabase(...) is a lot faster than other ways of clearing a database. But this call will remove the table definitions while
TableUtils.clearTable(...)
leaves the schema intact.您可以调用
扩展了
OrmLiteSqliteOpenHelper
的DatabaseHelper
类。context
被传递到构造函数中的DatabaseHelper
类。下次需要数据库时,将重新创建并
调用该数据库。
You can call
in your
DatabaseHelper
class which extendsOrmLiteSqliteOpenHelper
.context
is passed to theDatabaseHelper
class in the constructor.The next time the database is needed, it is recreated and
is called.
要删除数据库,请使用以下命令:
要重新创建/打开当前数据库,请使用以下命令:
您必须在数据库助手中保留对上下文的引用。
To delete the database use these commands:
To recreate/open the current database use these commands:
You will have to keep a reference to the context in your database helper.