とある社畜(♀)のダイエット記録~プログラミングもあるよ~

新米SEのレコーディングダイエットの変遷、料理、プログラミング備忘録な雑多ブログです。

greenDAO入門の和訳

2015.05.18 (Mon)  Android
greenDAOの学習を兼ねて、ひとまずgreenDAO公式サイトのHow to get startedを和訳してみました。
英語に愛されない才能に恵まれたので、ほぼGoogle先生頼り&意訳混じりです。間違ってるところあったら教えてください。
公式サイト⇒http://greendao-orm.com/

和訳ここから↓


■greenDAOの始め方

このチュートリアルでは、greenDAOの使い方について、簡単なサンプルプロジェクトを使って説明していきます。
サンプルはhttps://github.com/greenrobot/greenDAOからダウンロード可能です。
なお、このプロジェクトは「DaoExample」と「DaoExampleGenerator」の二つのサブプロジェクトで構成されています。
GitHubからプロジェクトをクローンで取得、またはGitHub上で直接ファイルを閲覧することもできます。

チェックアウトしたDaoExampleは、Androidアプリケーションとして実行可能です。メモを取るためのシンプルなアプリとなっています。
文字を入力することで新しいノートを追加したり、既存のノートを押下することでノートを削除することが可能です。


・生成されたコードと、テーブルの作成について

src-genフォルダには、既にいくつか生成されたコードが入っています。

1)Note.java⇒ノートの要素を記述したクラス。
2)NoteDao.java⇒ノートオブジェクトを扱うインターフェイスとなるDAOクラス。

DaoExampleGeneratorを使えばこうしたNoteクラスやNoteDaoクラスはいつでも生成できますが、ひとまずはDaoExampleについて見ていきましょう。
DaoExample内のDaoMasterクラスを使うと、簡単にSQLiteOpenHelperを取得することが出来ます。



new DaoMaster.DevOpenHelper(this, "notes-db", null)



処理をgreenDAOが自動的に行ってくれるので、「CREATE TABLE」をする必要はありません。


・ノートの挿入および削除

ノート用のテーブルがあれば、ノートをデータベースに登録することが出来ます。
この処理はNoteActivityクラスで行われており、onCreateメソッドでDAOオブジェクトを準備します。



daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
noteDao = daoSession.getNoteDao();




次にaddNoteメソッドを見てみましょう。
データベースに新しいノートを追加するにはこのように書きます。



Note note = new Note(null, noteText, comment, new Date());
noteDao.insert(note);
Log.d("DaoExample", "Inserted new note, ID: " + note.getId());




Javaオブジェクトを作成し、DAOのinsertを呼び出すだけです。
insert処理後にログで確認できる通り、今追加されたノートにはデータベースIDが既に割り当てられています。

ノートの削除も簡単です。onListItemClickメソッドを見てみましょう。



noteDao.deleteByKey(id);



ここでは割愛しますが、loadAllやupdateなどの他のメソッドもあります。


・データモデルとコードの作成について

メモを拡張したり、新しいエンティティを作成したりするには、DaoExampleGeneratorを見る必要があります。
DaoExampleGeneratorには、データモデルの定義を記載したクラスが置いてあります。



Schema schema = new Schema(1, "de.greenrobot.daoexample");
Entity note = schema.addEntity("Note");
note.addIdProperty();
note.addStringProperty("text").notNull();
note.addStringProperty("comment");
note.addDateProperty("date");
new DaoGenerator().generateAll(schema, "../DaoExample/src-gen");




ここでエンティティ追加用のスキーマオブジェクトを作成します。
エンティティには、データベースの列にマップされているプロパティを記載します。
スキーマの定義が完了したらコードの自動生成を行うことが出来ます。Note.javaとNoteDao.javaはこの方法で生成されたものです。


・次の一歩

さて、greenDAOについてどのように感じたでしょうか。是非、自分で色々試してみてください。
使い方については、こちらのマニュアルも参照してください。マニュアルを見ても解決しない問題があればサポートオプションをご利用ください。



和訳ここまで↑

なんとなく概念が分かってきたような段階です。
でもまだAndroidStudioに投入出来てすらいないっていう駄目っぷり。エラーの波にもまれている。せめて動かしたいのでもう少し頑張ります


ランキング参加中!
よろしければぽちっとお願い致します↓(´∀`*)




スポンサーサイト

コメント


管理者のみに表示

トラックバック