java - SQLiteOpenHelper 和 SQLiteAssetHelper 之间的区别?

标签 java android sqlite android-sqlite sqliteopenhelper

SQLiteOpenHelperSQLiteAssetHelper 有什么区别?我该如何使用它们?

我知道,当您使用 SQLiteOpenHelper 时,您必须覆盖 onCreate()onUpgrade() 方法。此外,还可以添加、删除和查找数据库值。

但是,我读到 SQLiteAssetHelper 更适合我的情况 - 因为我将有一个预填充的数据库,我将执行比添加或删除或其他任何操作更多的查询。

所以基本上:

  1. 这两者之间的根本区别是什么?

  2. 对于在编译时而不是在运行时未知的数据库中的数据进行查询,哪个更好? (为此我将使用 query()SQLiteQueryBuilder()。)

  3. 我将如何设置正确的?

最佳答案

1) What is the fundamental difference between these two?

两者都是管理和版本控制数据库文件的助手。区别仅在于架构和初始内容的设置方式以及版本迁移的完成方式。

SQLiteOpenHelper 通过调用您的 onCreate() 回调来设置一个新的数据库文件,并通过调用您的 onUpgrade() 回调来迁移旧的数据库文件.

SQLiteAssetHelper 通过从 Assets 中复制文件来设置新的数据库文件,并通过从 Assets 中运行升级脚本来迁移旧数据库文件。

2) Which one would be better for doing a query for data in the database that is not known at compile time but instead at runtime (will use query() or SQLiteQueryBuilder() right here)

在获取 SQLiteDatabase 对象后,两者都可以很好地处理动态插入的数据和代码,例如与getWritableDatabase()是一样的。

3) And how would I go about setting up the right one?

关于java - SQLiteOpenHelper 和 SQLiteAssetHelper 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24578331/

相关文章:

iphone - 如何将文件导入sqlite?

java - 使用 Selenium 在 Webtest 中模拟 'Enter' 按键

java dx 实用程序 : UNEXPECTED TOP-LEVEL ERROR java. lang.ExceptionInInitializerError

Android Developer Console - 使用 Android Studio 发布构建后指纹错误

android - build.phonegap.com 是否有任何开源替代品?

iphone - SQLite 核心数据性能随时间的变化

java - Android SQLiteDatabase 查询忽略空格

java - 如何验证只输入小数或整数,而不是单独的符号。(android)

java -> vs. >= 在冒泡排序中导致显着的性能差异

java - Excel 中的空单元格返回 Null(Java、POI)