我可以通过两种方式打开SQLiteDatabase:
SQLiteDatabase.openDatabase()
SQLiteOpenHelper.getWritableDatabase ()
在使用SQLiteDatabase.openDatabase()
Q1-为什么重复?
Q2-从软件设计的角度我如何从中受益
答案 0 :(得分:1)
创建自己的扩展SQLiteOpenHelper
的类允许您从主代码中删除大量SQLite数据库代码。您可以覆盖onCreate(...)
和onUpdate(...)
方法,以允许它在您的应用首次运行时自动创建数据库,并在将来升级您的应用时更新数据库。
它也很有用,因为您可以向扩展SQLiteOpenHelper
添加方法来执行所有'样板'任务(查询,插入,删除等)。实际上,您的主代码永远不需要引用数据库 - 它可以简单地调用扩展SQLiteOpenHelper
类的方法。
答案 1 :(得分:0)
SQLiteDatabase
提供较低级别的访问和控制,而如上所述,SQLiteOpenHelper
负责处理很多样板代码,您通常应该更喜欢它。您需要使用SQLiteDatabase
的一种情况是,当您想要在外部存储上打开数据库(通常预先填充)时 - SQLiteOpenHelper
您无法指定数据库文件位置,它默认创建一个在您应用的私人目录中(org.myapp/databases
下)。