SQLiteOpenHelper
和SQLiteAssetHelper
之间有什么区别?我该如何使用它们?
我知道当您使用SQLiteOpenHelper
时,您必须覆盖onCreate()
和onUpgrade()
方法。此外,还可以添加,删除和查找数据库值。
但是,我读到SQLiteAssetHelper
对我的情况更好 - 因为我将有一个预先填充的数据库,我会做更多的查询而不是添加或删除或其他任何内容。
基本上是这样的:
这两者之间的根本区别是什么?
哪一个对数据库中的数据进行查询会更好,这些数据在编译时是未知的,而是在运行时? (我将使用query()
或SQLiteQueryBuilder()
。)
我如何设置正确的?
答案 0 :(得分:6)
1)这两者之间的根本区别是什么?
两者都是管理和版本化数据库文件的助手。区别仅在于如何设置架构和初始内容以及如何完成版本迁移。
SQLiteOpenHelper
通过调用onCreate()
回调设置新数据库文件,并通过调用onUpgrade()
回调来迁移旧数据库文件。
SQLiteAssetHelper
通过从资产中复制文件来设置新数据库文件,并通过从资产运行升级脚本来迁移旧数据库文件。
2)哪一个对数据库中的数据进行查询会更好,这些数据在编译时是未知的,而是在运行时(在此处将使用query()或SQLiteQueryBuilder())
在获得SQLiteDatabase
对象后,两者都可以正常运行动态插入的数据和代码。与getWritableDatabase()
相同。
3)我将如何设置正确的?
Android docs SQLiteOpenHelper
README SQLiteAssetHelper