数据库操作

greenDAO是一款为Android而生的ORM工具。通过greenDAO你可以减少许多重复性代码,并通过简单的接口操作数据库。

在本节中,我们将先带大家体验greenDAO的使用,在感受到greenDAO的强大之处后,再对greenDAO的配置进行介绍

使用greenDAO

假定你已经集成并配置好了greenDAO,现在你想要对一个数据进行增删查改操作,那么你仅需要以下几个步骤:

一、编写entity

实体是一个用于持久化数据到数据库中的类,实体的数据结构与数据库列的属性相对应。

@Entity(indexes = {
    @Index(value = "text, date DESC", unique = true)
})
public class Note {

    @Id
    private Long id;

    @NotNull
    private String text;
    private Date date;
    ...

二、生成DAO

DAO帮助我们向数据库添加数据。DAO类无需你手动编写,通过在Android Studio中使用Build > Make project既可触发greenDAO生成DAO类

三、操作数据

在对数据进行操作之前,你需要获取待操作数据的DAO对象。如示例中,待操作Note数据,故获取NoteDao对象。

通过DAO对象你便可以对数据库进行增删查改操作了。

插入数据

删除数据

查找数据

更改数据

有没有感觉很简单?这便是greenDAO的强大之处。接下去让我们来了解如何集成并配置greenDAO吧!

配置greenDAO

添加依赖

为了使用greenDAO ,请将以下Gradle配置添加到您的Android项目中。

在 root build.gradle 文件:

在app module app/build.gradle文件:

添加配置

您无需任何配置即可开始使用greenDAO Gradle插件。不过,我们建议您至少配置一下schema version:

greendao的各配置项说明如下:

  • schemaVersion:数据库schema的当前版本。*OpenHelpers类中将使用到该值。如果您对entity或者数据库schema进行了变更,则必须增加该值。默认值为1。

  • daoPackage:一个包名,用于存放生成的DAO,DaoMaster和DaoSession。若未设置,将使用source entities的包名。

  • targetGenDir:生成sources的存储位置。默认为构建目录(build/generated/source/greendao

  • generateTests:设置为true时,将自动生成单元测试。

  • targetGenDirTests:生成单元测试的存储位置。默认为src/androidTest/java

初始化greenDAO和数据库

在Application类中初始化一个DaoSession,并整个应用当却仅当执行一次。

实战方案

  1. 初始化Dao

常见问题

使用greenDao时,出现 no such table的异常

no such table:中文译”没有找到表“,其原因是之前的表已经建好了,而新增的表需要重新初始化数据库才可以建好,所以只需要把schemaVersion 改变一下版本号,重新sync运行一下就可以重新生成表了,另外修改表中字段都需要重新初始化数据库才会生效。

参考文档

greenDAO官方文档

greenDAO Github

Last updated

Was this helpful?