本节将通过一个简单的示例项目带你入门。访问https://github.com/greenrobot/greenDAO ,其中包含两个子项目(文件夹)DaoExample 和 DaoExampleGenerator。可复制git仓库获取代码运行,或直接在github上浏览相关文件。如果从git仓库中检出DaoExample,可将它作为一个Android应用运行。如你所见,它是一个简单的笔记本应用。键入一些文本添加新的笔记,通过点击一个现有的笔记本则将它删除。
预生成的代码并创建表
现在,一起看代码。在src-gen文件中,将发现一些已经生成的类:
1)Note.java 是一个java类,包含了一条笔记的所有数据。
2)NoteDao.java 是一个DAO类,提供操作Note对象的方法
通过DaoExampleGenerator 项目可重复生成Note和NoteDao。现在回到DaoExample项目,用DaoMaster类可方便的获取 SQLiteOpenHelper。
应该注意到,无需编写 “CREATE TABLE” SQL 脚本,greenDAO已经为你实现。
插入和删除笔记
现在有了一张关于笔记本的数据表,我们就可以填充一些笔记到数据库中。相关实现在NoteActivity类。在onCreate方法中准备了一个DAO对象:
1
2
3
|
daoMaster =
new
DaoMaster(db);
daoSession = daoMaster.newSession();
noteDao = daoSession.getNoteDao();
|
看addNote方法,插入一条新的笔记到数据库如下:
1
2
3
|
Note note =
new
Note(
null
, noteText, comment,
new
Date());
noteDao.insert(note);
Log.d(
"DaoExample"
,
"Inserted new note, ID: "
+ note.getId());
|
创建一个实体并调用DAO的insert方法。当执行完inser方法,刚刚插入的note实体对应的id,将被赋值为插入操作返回的id,可在日志中看到。
删除一条笔记也很方便,看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"
);
note.addDateProperty(
"date"
);
new
DaoGenerator().generateAll(schema,
"../DaoExample/src-gen"
);
|
如上,先创建一个Schema对象,再往其添加实体。一个实体类关联着一张数据库表。实体包含属性,映射数据库中的字段。
本文转自:http://my.oschina.net/u/1052509/blog/312490