关于greenDao的使用
第一篇How to get started ?
原文地址:http://greendao-orm.com/documentation/how-to-get-started/
该教程会带你浏览一个简单的greenDao示例工程。地址:https://github.com/greenrobot/greenDAO,该工程包含两个子工程:
DaoExample和DaoExampleGenerator。你可以clone到本地,运行或者直接在github上直接浏览。
如果你从git仓储中检出了DaoExample,可以直接像Android应用一样运行它。正如你所看到的,它就是一个简单的笔记本。可以添加新的note,
或者点击已存在的note进行删除。
预生成代码和创建表
在src-gen目录下,你可以找到一些已经生成的文件
1)Note.java 一个包含一个Note所有数据的java类。
2)NoteDao.java 一个DAO类,是操作Note 对象的接口。
你可以通过DaoExampleGenerator工程再次生成Note和NoteDao。
使用DaoMaster类可以获得一个方便的SQLiteOpenHelper:
new DaoMaster.DevOpenHelper(this, "notes-db", null)
你不必编写“CREATE TABLE” SQL语句,greenDao会为你完成。
插入和删除Note对象
创建了Note表后,就可以存储一些note到数据库里了。这是在NoteActivity类里完成的。在onCreate方法里,我们准备了一个DAO对象:
1
2
3
|
daoMaster =
new
DaoMaster(db);
daoSession = daoMaster.newSession();
noteDao = daoSession.getNoteDao();
|
添加一个新的note到数据库中:
1
2
3
|
Note note =
new
Note(
null
, noteText, comment,
new
Date());
noteDao.insert(note);
Log.d(
"DaoExample"
,
"Inserted new note, ID: "
+ note.getId());
|
该示例只是创建并插入了一个java对象。但insert方法返回的时候,数据库的ID已经分发到了刚插入的Note对象上了。在log中可以看到。
删除一条note:非常简单明,在onListItemClick方法中可以看到
1
|
noteDao.deleteByKey(id);
|
你也可以看一下其它的DAO方法:loadAll、update。
数据模型化和代码的生成
为了扩展note或者创建新的实体,你可以看一下DaoExampleGenerator工程。它包含了一个单例的类,该类中包含了数据模型的定义代码。
1
2
3
4
5
6
7
|
Schema schema =
new
Schema(1,
"de.greenrobot.daoexample"
);
Entity note= schema.addEntity(
"Note"
);
note.addIdProperty();
note.addStringProperty(
"text"
).notNull();
note.addStringProperty(
"comment"
);
|