今回から何回かに分けてAndroidStudioでGreenDaoの使い方について書いていこうと思います。
greenDAOドキュメント http://greendao-orm.com/
greenDAOはsqliteを操作するDAO(Data Access Object)を生成するAndroid用のORMライブラリです。
導入はこちらのブログで詳しく書かれていますのでこちらを参考にしていきます。
1. AndroidStudioでプロジェクトを作成します。
2. 赤枠で囲っている部分がAndroidとなっていればProjectに変えます。
3. プロジェクト右クリック > New > Directory に「DaoGenerator」ディレクトリを作る。
次に作成した「DaoGenerator」ディレクトリを右クリック > New > File をクリックして
File名に「build.gradle」と記述してOKを押します。
4. build.gradleファイルが作れたらファイルにtaskを書いていきます。
こちらのブログで書かれているtaskを参考に適宜自分の環境に合わせて変更します。
今回は単純にIdとInt型のナンバーカラム、String型のテキストカラムのテーブルを作成していきます。
import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;
def dbVersion = 1
def daoOutputPackage = "com.example.aoki.greendaotestapplication.db"
def daoOutputDirPath = "app/src-gen/main/java"
// generatorで作成したディレクトリを削除する
task daoGeneratorClean(type: Delete) {
delete "../${daoOutputDirPath}"
}
task daoGenerator {
description 'daoを生成します'
doLast {
Schema schema = new Schema(dbVersion, daoOutputPackage);
// テーブル定義
Entity daoTestTable = schema.addEntity("DaoTest");
daoTestTable.addIdProperty().primaryKey().autoincrement();
daoTestTable.addIntProperty("number");
daoTestTable.addStringProperty("text");
try {
// 未作成ならディレクトリを作る
File file = new File(daoOutputDirPath);
if (!file.exists()) {
file.mkdirs();
}
// Dao生成!
new DaoGenerator().generateAll(schema, daoOutputDirPath);
} catch (Exception e) {
e.printStackTrace();
}
}
}
5. taskが書き終えたらappディレクトリ直下のbuild.gradleに以下を追加
6. そしてproject直下のgradleファイルにsyncするgeneratorファイルなどを設定
7. settings.gradleに「DaoGenerator」を追加
ここまで出来たらあとはSyncしてGenerateすれば出来上がりです。
赤丸で囲っている部分を押してSyncをかけます。
ここまでで問題なければ最後はGenerateして終わりです。
AndroidStudio右端のGradleをクリックします。
:DaoGenerator > Tasks > other と進んで「daoGenerator」をダブルクリック。
以下のようなファイルが出来ていれば終了です。
Android Studioでgradle taskを使ってgreenDaoのDao生成を行う