次の 2 つの方法で SQLiteDatabase を開くことができます。
SQLiteDatabase.openDatabase()
SQLiteOpenHelper.getWritableDatabase ()
使用時のより多くの制御を除いて、2つのアプローチに違いはないようですSQLiteDatabase.openDatabase()
Q1- なぜ重複するのですか?
Q2- ソフトウェア設計の観点から、どのように恩恵を受けることができますか
次の 2 つの方法で SQLiteDatabase を開くことができます。
SQLiteDatabase.openDatabase()
SQLiteOpenHelper.getWritableDatabase ()
使用時のより多くの制御を除いて、2つのアプローチに違いはないようですSQLiteDatabase.openDatabase()
Q1- なぜ重複するのですか?
Q2- ソフトウェア設計の観点から、どのように恩恵を受けることができますか
拡張する独自のクラスを作成するとSQLiteOpenHelper、メイン コードから多くの SQLite db コードを削除できます。onCreate(...)メソッドとメソッドをオーバーライドしてonUpdate(...)、アプリの初回実行時にデータベースを自動的に作成し、アプリの今後のアップグレードでデータベースを更新できるようにします。
また、SQLiteOpenHelperすべての「ボイラープレート」タスク (クエリ、挿入、削除など) を実行するメソッドを拡張に追加できるので便利です。事実上、メイン コードはデータベースへの参照を必要とせず、拡張SQLiteOpenHelperクラスのメソッドを呼び出すだけで済みます。
SQLiteDatabase offers lower level access and control, while, as mentioned above, SQLiteOpenHelper takes care of a lot of boilerplate code, and you should generally prefer it. One situation where you need to use SQLiteDatabase is when you want to open a database (often pre-populated) on external storage -- with SQLiteOpenHelper you cannot specify the DB file location, it defaults to creating one in your app's private directory (under org.myapp/databases).