greenDAO – Android ORM for SQLite

3875 ワード

How to get started
このチュートリアルでは、簡単なgreendaoサンプルプロジェクトで説明します.にあるhttps://github.com/greenrobot/greenDAOこのプロジェクトには、DaoExampleとDaoExampleGeneratorの2つのサブフォルダがあります.この2つのプロジェクトをクローンして実行するか、githubでコードを直接見ることができます.
DaoExampleというプロジェクトをローカルでチェックアウトしたら、アンドロイドプロジェクトとして実行できます.ご覧のように、彼はメモを記録するための簡単なappです.ノート(note)を追加したり、テキストを入力したり、ノート(note)を削除したりして、既存のノート(note)をクリックすることができます.(このアプリを実行してから、この言葉の意味を理解する必要があります)
Pre-generated code and creating the table(コードの生成とテーブルの作成の準備)
では、コードを見てみましょう.フォルダsrc-genでは、生成されたファイル(artifacts):1)Noteを見つけます.JAvaはすべてのデータ説明Javaクラス2)NoteDao.JAvaはDAOクラスで、あなたのインタフェースとNoteオブジェクトの間の仕事(your interface to work with Note objects).
NoteとNoteDaoを再生成してDaoExampleGeneratorプロジェクトを使用することができます.(意味が分からない)But let’s stick to DaoExample for a minute.DaoMasterクラスを使用すると、SQLiteOpenHelperを取得できます.
new DaoMaster.DevOpenHelper(this, "notes-db", null)

ご覧のように、「CREATE TABLE」というSQLスクリプトを書いていません.greenDAOはすでにあなたのためにしました.
ノートの挿入と削除(notes)
そのため、ノートパソコンのテーブル(table for our notes)があれば、このデータベースにノートを置くことができます.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オブジェクトを1つだけ作成し、DAOクラスのinsertメソッドを呼び出します.Insertメソッドを実行した後の戻り値、すなわち、正常に挿入された後に返されるデータベースidがobjectオブジェクトに設定されている場合は、ログで表示できます.
メモを削除するには、onListItemClickメソッドを参照してください.
noteDao.deleteByKey(id);

考えてみれば、loadAllやupdateのような他のDAO方法を研究することができます.
Data model and code generation(データモデルとコード生成)
このnoteを拡張したり、新しいエンティティを作成したりするには、DaoExampleGeneratorプロジェクトを参照してください.データ・モデルの定義コードを含むクラスは1つだけです.
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");

ご覧のように、Schemaオブジェクトを作成し、エンティティ(entities)を追加できます.エンティティは、データベース・テーブルに関連付けられたクラスです.エンティティには、データベースのカラムにマッピングされるプロパティが含まれています.schemaが定義を完了すると、コード生成をトリガーできます.このコードはNoteを示しています.JAvaとNoteDao.JAvaファイルはどのように生成され、ファイルはどこで作成されますか.