greenDAO文档翻译一:如何开始

greenDAO文档翻译之一:如何开始

这个教程将带你领略一个简单的greenDAO示范项目——DAOExample。你可以很轻松地clone它的源码并把它运行起来,或者干脆在Github直接阅读源文件吧。

DaoExample是一个提供写笔记的简单Android App。创建笔记的时候,你可以都写上同样的文字,删除一个旧笔记轻轻一点就可。

Note实体和DAO类

让我们来通过扒代码一探究竟:在src的文件夹里你会发现note的实体类文件Note.java。它包含一个note的所有数据比如id,文本以及创建日期等被存储到数据库中。

@Entity(indexes = {
@Index(value = "text, date DESC", unique = true)})
public class Note {
    @Id
    private Long id;
    @NotNull
    private String text; 
    private Date date; 
    ...
}

通常来讲,一个类的实体对应存储在数据库中的一行(例如:一行便是一个对象)。一个实体所包含的属性恰恰映射到数据库中的列。

现在执行构建项目,比如在Android Studio中是通过“Build > Make project”。这会触发greenDAO去生成像NoteDao.java之类的DAO类,会帮助我们向数据库中添加更多笔记。

插入和删除笔记

为了学习如何添加新的笔记,先看一眼NoteActivity.java类。首先,我们需要在onCreate()方法里为我们的Note类准备一个DAO对象。

// get the note DAO
DaoSession daoSession = ((App) getApplication()).getDaoSession();
noteDao = daoSession.getNoteDao();

当用户点击“add”按钮的时候,addNote()会被调用。背后的逻辑是,我们创建一个新的Note对象并把它传给它的Dao类中的insert()方法,把它插入到数据库中。

Note note = new Note(null, noteText, comment, new Date()); 
noteDao.insert(note);
Log.d("DaoExample", "Inserted new note, ID: " + note.getId());

有没有注意到我们在创建笔记的时候并没有传过去id。在这种情况下数据库会自己决定笔记的id。DAO在执行完插入之后会自动返回一个经过考量的新id。

删除一个笔记也非常简单明了,请看NoteClickListener

noteDao.deleteByKey(id);

如果你觉得这些都太小儿科了,你还可以继续探索NoteDao里面的其他方法,比如loadAll()update()

设置数据库

你已经看到DAO了,但是你知道怎么初始化greenDAO和底层的数据库吗?告诉你,通常需要在App的全局Application类中初始化一个DaoSession对象。

DevOpenHelper helper = new DevOpenHelper(this, "notes-db");
Database db = helper.getWritableDb();
daoSession = new DaoMaster(db).newSession();

数据库是由帮助类DevOpenHelper创建的,它在生成的DaoMaster类中。在DaoMaster类中,DevOpenHelper通过实现OpenHelper类来为你创建了所有的数据库。这样就没有必要再写”CREATE TABLE”这样的SQL语句了。

你上面看到的插入和删除笔记功能,如果在Activity和Fragment中的话,接下来就可以调用getDaoSession()来访问所有的实体DAO了。

扩展和添加实体

为了扩展我们的笔记或者创建新的实体,你可以用同样的方式修改或者创建Java类和注解。然后再次构建你的项目。

请到Modelling entities查看更多细节。

下一步

现在你已经对greenDAO有了一个印象了,是时候撸起袖子亲自尝试一番了!继续查看完整的文档,从介绍开始。

最后,如果你没有找到你想要的东西,请告诉我们


原文档在这里,欢迎指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值