SQLiteOpenHelper和SQLiteAssetHelper之间的区别?

时间:2014-07-04 16:42:15

标签: java android sqlite android-sqlite sqliteopenhelper

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

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

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

基本上是这样的:

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

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

  3. 我如何设置正确的?

1 个答案:

答案 0 :(得分:6)

  

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

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

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

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

  

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

在获得SQLiteDatabase对象后,两者都可以正常运行动态插入的数据和代码。与getWritableDatabase()相同。

  

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