0

次の 2 つの方法で SQLiteDatabase を開くことができます。

SQLiteDatabase.openDatabase()
SQLiteOpenHelper.getWritableDatabase ()

使用時のより多くの制御を除いて、2つのアプローチに違いはないようですSQLiteDatabase.openDatabase()

Q1- なぜ重複するのですか?

Q2- ソフトウェア設計の観点から、どのように恩恵を受けることができますか

4

2 に答える 2

2

拡張する独自のクラスを作成するとSQLiteOpenHelper、メイン コードから多くの SQLite db コードを削除できます。onCreate(...)メソッドとメソッドをオーバーライドしてonUpdate(...)、アプリの初回実行時にデータベースを自動的に作成し、アプリの今後のアップグレードでデータベースを更新できるようにします。

また、SQLiteOpenHelperすべての「ボイラープレート」タスク (クエリ、挿入、削除など) を実行するメソッドを拡張に追加できるので便利です。事実上、メイン コードはデータベースへの参照を必要とせず、拡張SQLiteOpenHelperクラスのメソッドを呼び出すだけで済みます。

于 2012-05-08T23:41:33.147 に答える
0

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).

于 2012-05-09T02:50:35.307 に答える