Android数据库GreenDAO3.2.2的使用(一,集成数据库)

由于项目新加入离线功能,因此需要本地数据库,好久没有使用数据库了,就比较各个数据库的优缺点,最终选择了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 plugin
      3、 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的类型和注释在使用过程中还遇到过坑,下篇文章会介绍一下。

更多的操作和更高级的使用,大家可以根据需要去查找资料或者阅读官网,本文有任何问题欢迎大家指正批评。

猜你喜欢

转载自blog.csdn.net/KingsleyCheng/article/details/73724656