SQLiteOpenHelper和SQLiteAssetHelper之间的区别?

Kel*_*p23 3 java sqlite android sqliteopenhelper android-sqlite

SQLiteOpenHelper和之间的区别是什么SQLiteAssetHelper?我如何使用它们?

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

但是,我读到这SQLiteAssetHelper对于我的情况更好 - 因为我将有一个预先填充的数据库,我会做更多的查询,而不是添加或删除或其他任何东西.

所以基本上:

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

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

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

laa*_*lto 6

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

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

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

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

2)哪一个更适合对数据库中的数据进行查询,这些数据在编译时是未知的,而是在运行时(在此处将使用query()或SQLiteQueryBuilder())

两者都可以正常工作,动态插入数据和获取SQLiteDatabase对象后的代码getWritableDatabase()是相同的.

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