我正在Android应用程序中使用SQLite数据库文件,该文件是通过使用以下方法从存储在资产文件夹中的几部分创建的: ReignDesign-在Android应用程序中使用自己的SQLite数据库

在完成assemby过程后,我想检查数据库是否正确合并。我想到了以下方法:

  • MD5哈希比较
  • 检查表的存在和条目计数

    您会推荐哪种方式?有更好的方法吗?

    谢谢

    菲利普

有帮助吗?

解决方案

我正在开发的应用程序也有类似情况。有多种方式可以做到这一点;但是最后,我不再担心确切地以及如何最好地衡量数据库完整性,而开始关注“应用程序可以使用我的数据库”。

因此,基本上,我测试是否:1)我可以正确打开SQLite数据库2)我可以在数据库上执行查询,以及3)预定义查询的结果是否返回预期的结果。

因此,基本上:包括一个包含已知ID记录的表,该记录给出您所知道的值,然后尝试读取该值。检查表计数不能指望。

那就是说,我希望这里的一位对DB系统有充分了解的人能够解释a)基因组代码的确切作用,以及b)与手动表检查相比,它的可靠性和有效性。

其他提示

在API 11中, sqlitedatabase 具有 isdatabaseintegrityok ,用于检查SQLite数据库的完整性:

http://developer.android。COM / RECENT / ANDROID / DATABASE / SQLITE / SQLITEDATABASE.HTML#ISDATABASEINTEGRITYOK()

和源代码在此处可行:

https://github.com/android/platform_frameworks_base/blob/ics-mr1-release/core/java/android/database/sqlite/sqlitedatabase.java#l2585

很容易在旧设备上备份。

就性能和易于编码而言,我更倾向于第一种方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top