0

我正在构建一个应用程序,该应用程序有一个数据库,其中使用内部创建的两个表SQLiteOpenHelper。当应用程序运行时,它会接收一些数据并将其保存到表中。我想要的是在应用程序启动时清除数据表?

我查看了这篇文章如何在每次启动应用程序时清除 SQLite 数据库?不清楚如何使用应用程序。

4

2 回答 2

2

如果您将构造函数传递给SQLiteOpenHelper,则它能够创建内存数据库null name。可能这就是您正在寻找的。

例如:

SQLiteOpenHelper sqloh = new SQLiteOpenHelper(context, null, null, 1);
SQLiteDatabase sqldb = sqloh.getWritableDatabase();

将创建一个内存数据库。

于 2012-08-13T23:29:09.677 回答
1

SqliteDatabase 使用 openOrCreate(...) 方法,如果数据库存在则打开它,并在它不存在时创建并打开它。请参阅基于该文档的文档,您可以在执行任何数据库调用之前删除创建的数据库文件,以便每次创建一个新文件。

这个 SO 问题给出了文件的位置:设备上 sqlite 数据库的位置

当应用程序通过执行 sqlite 查询启动时,还有其他方法只是删除表中的数据:

DELETE FROM your_table

我唯一的想法是,如果您要在每次应用程序启动时删除它,您是否真的需要一个数据库。如果您不更新数据,那么为什么不只是“缓存”一个包含数据的 json 文件。GSON库非常适合使用 json 并将其转换为 java 对象,只需要很少的代码,比使用 sqlite 的代码更少。但该建议来自于对您要完成的工作没有大局观。然后,您只需在应用程序启动时删除 json 文件而不是 db 文件。

于 2012-08-13T23:24:03.803 回答