greenDAO – Android ORM for SQLite

来源:互联网 发布:网络机顶盒接音响 编辑:程序博客网 时间:2024/06/11 16:08

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文件是怎么生成在,文件在哪里被创建的。

0 0
原创粉丝点击