Android Studio集成greenDAO 3.0基础教程

作者:滴水穿石 | 创建时间: 2023-04-25
greenDAO 3是一款当前Android开发较流行的SQLite框架,该框架在集成、使用方面和其他框架有所不同,本文将从以下几方面帮助初学者了解greenDAO 3:1、快速集成greenDAO 3,2、初步体验greenDAO 3对数...
Android Studio集成greenDAO 3.0基础教程

一、快速集成greenDAO 3

与以往集成框架不同的是,greenDAO 3除了需要在build.gradle文件的dependencies标签添加依赖包greendao:3.2.2外,还需要下载并添加一个Gradle插件,该插件叫:greendao-gradle-plugin:3.2.2,使用Android Studio插件module后,打开build.gradle文件

第一步:添加greenDAO依赖包,如下图:

第二步:下载并添加greenDAO 3构建插件,如下图:

细心的读者会发现,greenDAO 3插件的代码和apply plugin: 'com.android.application'的代码有几分相似,后者的代码在每一个新建的Application Module中都会出现,如果新建的是一个Library Module,上述代码变成apply plugin: 'com.android.library',现在我们先不讨论,后面会深入理解Gradle Plugin。

第三步:同步buid.gradle文件,配置如下图

在项目中展开External Libraries,可以看到greendao-3.2.2和greendao-api-3.2.2两个类库,后面会分析这两个类库的源码,从源码中学习它们的使用,如下图:

这个时候,我们已经完成Android Studio集成greenDAO 3的任务,接下来greenDAO怎么使用。

二、初步体会greenDAO 3增、删、改、查数据的便捷

greenDAO 3相比greenDAO 2有了重大的改变(本文介绍的是greenDAO 3的用法),greenDAO 3使用了注解的方式定义Java实体和SQLite表之间的关系,实体和表之间处于一种关联的关系,当实体中的属性发生改变,调用update方法更新表中的内容;当需要往表添加内容,调用insert方法插入数据,减少开发者编写重复、繁琐的SQL代码,体会greenDAO 3带来数据操作的便捷

现在,需要创建一张学生表,用于保存学生的基本信息:姓名、年龄、成绩,使用greenDAO 3框架就会显得很方便,代码如下:

新建一个Student类,并添加greenDAO相关的注解,注解包括:@Entity定义SQLite表相关内容,@Id定义表的主键,@NotNull定义表的列不为空,还有其他注解的标签,TeachCourse将在后面进行介绍。

前面我们不清楚为什么需要添加一个Gradle Plugin,现在我们在新建Student类后,点击菜单Build——>Make Project或Make Module xxx,然后等待构建完成,需要注意:原来的Student类自动添加了一些额外的代码,如下:

这是使用greenDAO 3其中一个便捷的地方,减少我们编写额外的代码(关于会自动生成哪些代码,学习greenDAO注解的时候会说到)。 如果你没有在build.gradle文件的greendao标签中定义属性:daoPackage,默认生成表的相关Java代码位于如下路径:

我们展开上述路径,看到如下图:

除了生成生成表的相关Java代码外,还多创建了两个类DaoMaster和DaoSession,这两个类用于操作表的增、删、改、查,同时这两个类在第一次构建生成后,以后不再重新生成。简单地说,如果我们还想要创建一张课程表Course,代码如下:

点击菜单Build——>Make Project或Make Module xxx,然后等待构建完成,生成新的CourseDao类,而不会重新生成DaoMaster和DaoSession,如下图:

打开StudentDao类,发现里面自动生成了一些创建表的SQL语句以及一些操作表的方法;DaoSession类是greenDAO框架其中一个重要的接口,为开发者提供访问实体的操作和DAOs的一系列操作,基本用法如下:

每创建一个新的session,需要分配对应的内存空间,最好的做法:在application的onCreate()方法初始化,对外提供访问session的方法,减少内存的消耗,如下图:

2.1 插入数据

2.2 删除数据

2.3 更新数据

2.4 查询数据

到此,我们已经体会到greenDAO对数据增、删、改、查的便捷,接下来将进行高级教程的学习。

三、深入理解Gradle Plugin插件

Gradle是一种新一代的自动化构建工具,类似于Apache ant和Apache Maven,既继承了后两者自动化工具的优点,又添加新的特性,它的特性是:使用Groovy而不是xml编写配置文件,大大降低构建脚本的大小而且更易读。

Groovy虽说是一门新的语言,但因其源自于Java运行在Java Virtual Machine,所以和Java语言有很多相似的地方,更加简单、轻量级,比如:

3.1 Java和Groovy定义类的区别

3.2 Java和Groovy定义变量的区别

3.3 Java和Groovy定义方法的区别

3.4 Java和Groovy调用方法的区别

3.5 Java和Groovy其他方面的区别

3.6 自定义Gradle Plugin

在当前的例子中,greendao-gradle-plugin是一个使用Groovy语法编写的自定义插件,上传到开源的仓库,只需要在build.gradle添加如下代码,即可在项目中集成使用:

现在,我们需要定义自己的一个插件,自定义的插件上传本地仓库,只需要在build.gradle文件添加如下代码,即可使用:

在本地创建一个Groovy项目,项目名称为app-groovy,项目结构如下图:

app-groovy项目的根目录包括build.gradle和settings.gradle两个文件,如下图:

groovy和resources属于两个固定名称的文件夹,前者用于存储Groovy语言编写的代码,后者用于存放当前插件的属性文件,如下图:

3.7 详细了解上述各个文件代码

build.gradle文件添加了两个插件groovy和maven,uploadArchives是添加插件提供的一个task,作用是将当前插件上传本地,代码如下:

settings.gradle文件定义当前插件的名字,只有一句代码,如下:

groovy文件夹内添加对应的包名,然后新建一个以.groovy后缀的文件,实现Plugin<Project>接口,重写apply()方法,该方法会在应用插件的时候回调,代码如下:

resources文件夹包含子文件夹:META-INF——>gradle-plugins,然后新建以.properties为后缀的属性文件,文件名与apply plugin ''的插件名称一致,文件内部添加实现类的目录位置,代码如下:

到此完成了自定义插件的app-groovy的开发

3.8 Gradle工具自动化构建app-groovy

Android Studio默认下载了Gradle自动化构建工具到本地,在AS的安装目录Android Studio\gradle找到,配置一下gradle的环境变量,即可在cmd命令行使用,可以参考《Android开发之深入理解Android Studio构建文件build.gradle配置》

Gradle具体构建过程步骤如下:

1、gradle -v,检查环境变量是否配置成功

2、gradle task_name,执行指定的task_name,这里执行uploadArchives,在项目同级目录创建仓库repo,如下图:

3、gradle -q tasks --all,如果你不清楚项目包含哪些可执行的tasks,使用上述命令可检查项目包含可执行的task(切换到当前项目根目录),如下图:

到此,TeachCourse完成了app-groovy项目的构建,这个过程和使用AS构建Android项目是一样

3.9 如何引用自定义的Gradle Plugin?

在app-groovy项目的同级目录下新建文件夹sample,然后里面新建文件build.gradle,代码如下:

1、gradle build,检查当前build.gradle文件应用的插件,如下图:

2、gradle myTask,执行指定的task,如下图:

3、到此,TeachCourse完成了build.gradle文件应用Gradle Plugin

PS:由于篇幅的原因,剩下的内容:,,下一篇文章介绍

温馨提示

本篇文章重点学习greenDAO数据库框架快速集成与运用,引入Gradle Plugin的目的是加深对greenDAO框架的理解
自定义Gradle Plugin也属于一门语言,想要更深入学习,可以集合上述例子的基础上,阅读相关书籍
点击展开全文

更多推荐