greenDAO – Android ORM for SQLite

本文介绍如何使用GreenDAO为Android应用程序创建持久层。通过一个简单的笔记应用示例,演示了从生成实体类到实现增删查改操作的全过程。

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值