由于项目新加入离线功能,因此需要本地数据库,好久没有使用数据库了,就比较各个数据库的优缺点,最终选择了GreenDao。虽说集成时候有些麻烦和一些坑,但是解决问题后,这个数据库还是挺好用的。
一、阅读官方文档对集成还是很有帮助的,GreenDAO的官方文档:http://greenrobot.org/greendao/documentation/
二、添加依赖
1、在项目的Project的build.gradle里的builddscript添加配置mavenCental(),
在dependencies 里添加
classpath'org.greenrobot:greendao-gradle-plugin:3.2.2'
buildscript {
repositories {
jcenter()
mavenCentral() // add repository
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
}
} 2、在Module:app 里的build.gradle里添加
apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' // apply plugin3、 Module:app 里的build.gradle下
的dependencies 里添加
dependencies {
compile 'org.greenrobot:greendao:3.2.2'
} 4、 Module:app 里的build.gradle下
的android 里添加
greendao {
schemaVersion 1//数据库版本号
daoPackage 'com.yushiji.greendao.gen'//设置DaoMaster、DaoSession、Dao包名
targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
//targetGenDirTest:设置生成单元测试目录
//generateTests:设置自动生成单元测试用例
} 三、创建实体类即创建表
在实体类 上方 写 上 @Entity 即可!然后makeProject就会自动生成set get 方法。
@Entity public class User { @Id(autoincrement = true) private Long id; private String name; private String age; private String sex; private String salary; }通过
@Entity那么这个类便成了数据库中的一张表,而
@Id 此表明这是表的主键。当我们build工程之后我们会发现,GreenDAO替我们默认生成了:
四、GreenDao中的注释
1、 @Entity 定义实体
@nameInDb 在数据库中的名字,如不写则为实体中类名
@indexes 索引
@createInDb 是否创建表,默认为true,false时不创建
@schema 指定架构名称为实体
@active 无论是更新生成都刷新
2、 @Id 主键 Long型,可以通过@Id(autoincrement = true)设置自增长
3、@NotNull 不为null
4、@Unique 唯一约束
5、 @ToMany 一对多
6、 @OrderBy 排序
7、@ToOne 一对一
8、@Transient 不存储在数据库中
9、 @generated 由greendao产生的构造函数或方法
主键Id的类型和注释在使用过程中还遇到过坑,下篇文章会介绍一下。
更多的操作和更高级的使用,大家可以根据需要去查找资料或者阅读官网,本文有任何问题欢迎大家指正批评。
GreenDao集成与使用指南

本文介绍如何在Android项目中集成GreenDao数据库,并提供创建实体类及表的基本步骤。包括添加依赖、配置数据库版本和包名等关键信息。
3万+

被折叠的 条评论
为什么被折叠?



