【AndroidでSQLiteを制する】DAOパターンを導入する

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

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;
        }
    }