【AndroidでSQLiteを制する】DAOパターンを導入する
ActivityやFragment等のクラスはいろいろな処理ですぐに肥大化してしまいます。
SQLiteデータベースにアクセスするためにDAOパターンを取り入れます。
今回はデータベースの操作処理をクラス化し、DAOとDTOを実装します。
DAOパターンの実装
まずはBookテーブルに対応したDTOを実装します。テーブル : Bookテーブル
論理名 | 物理名 | 型 |
---|---|---|
ID | _id | INTEGER |
タイトル | title | TEXT |
サブタイトル | subtitle | TEXT |
public class BookDTO { private int mId; private String mTitle; private String mSubtitle; public int getId() { return mId; } public void setId(int id) { this.mId = id; } public String getTitle() { return mTitle; } public void setTitle(String title) { this.mTitle = title; } public String getSubtitle() { return mSubtitle; } public void setSubtitle(String subtitle) { this.mSubtitle = subtitle; } }
続いてDAOを定義します。
今回のDAOはすべてのメソッドを静的メソッドとして定義する予定です。
初回はSQLiteDatabaseインスタンスを取得するメソッドを定義します。
次回からはこのクラスにメソッドを追加していきます。
public class BookDAO { /** * SQLiteDatabaseインスタンスを取得する * @param context コンテキスト * @param isWritable 書き込み可能 * @return SQLiteDatabaseインスタンス */ public static SQLiteDatabase getSqLiteDatabase(Context context , boolean isWritable) { LoadToSQLiteMasterSQLiteOpenHelper loadToSQLiteMasterSQLiteOpenHelper = new LoadToSQLiteMasterSQLiteOpenHelper(context); SQLiteDatabase sqLiteDatabase = null; if(isWritable) { sqLiteDatabase = loadToSQLiteMasterSQLiteOpenHelper.getWritableDatabase(); } else { sqLiteDatabase = loadToSQLiteMasterSQLiteOpenHelper.getReadableDatabase(); } return sqLiteDatabase; } }