How to get started
本教程将通过一个简单的greendao示例项目引导您。在https://github.com/greenrobot/greenDAO这个项目中,有两个子文件夹:DaoExample和DaoExampleGenerator。你能克隆这两个项目并运行,或者直接在github上看代码。
如果你检出DaoExample这个项目在你的本地,你可以运行它作为一个安卓项目。如你所见,他是一个简单的app,用于记录笔记(note)。你能添加一些笔记(note)通过键入一些文本,也能删除笔记(note)通过点击已存在的笔记(note)。(你需要运行这个App后才能理解这段话的意思)
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对象,然后调用DAO类的insert方法。当执行insert方法后的返回值,也就是插入成功后返回的数据库id,已经被设置到object对象中了,你可以在日志中查看。
删除一条笔记,可以看onListItemClick方法:
noteDao.deleteByKey(id);
如果你想的话,你可以研究一下其他的DAO方法,像loadAll和update。
Data model and code generation(数据模型和代码生成)
为了扩展这个note或者创建新的实体,你应该看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");
如你所见,你创建了一个Schema对象,你能通过它添加实体(entities)。一个实体是一个与数据库表相关联的类。一个实体包含了属性,映射到数据库的列。一旦schema完成定义,你能触发代码生成。这段代码展示了Note.java和NoteDao.java文件是怎么生成在,文件在哪里被创建的。
本文介绍如何使用GreenDAO为Android应用程序创建持久层。通过一个简单的笔记应用示例,演示了从生成实体类到实现增删查改操作的全过程。
1210

被折叠的 条评论
为什么被折叠?



