greenDAO 3使用注释来定义模式和实体。相比之下,以前的greenDAO版本要求开发人员拥有一个单独的生成器Java项目。
关注github官网:https://github.com/greenrobot/greenDAO,可以随时查到最新依赖配置。
虽然您仍然可以执行此操作,但greenDAO 3允许您注释实体类以动态定义架构。这是一个简单的例子
@Entity
public class User {
    @Id
    private Long id;
    private String name;
    @Transient
    private int tempUsageCount; // not persisted
    // getters and setters for id and user ...
}
@Entity注释将Java类User转换为数据库支持的实体。这也将指示greenDAO生成必要的代码(例如DAO)。
Step 1: 在Project的build.gradle中添加插件
buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.0'
        
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
    }
}
allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        
    }
}
如图划横线的必须添加:

图片.png
Step 2: 在Module中添加GreenDao3.x依赖
implementation 'org.greenrobot:greendao:3.2.2'  //greendao依赖
Step 3: 在Module中申请插件
//使用greendao
apply plugin: 'org.greenrobot.greendao'
Step 4: 在Module中调整greendao基本配置
//greendao配置
greendao {
    //版本号,升级时可配置
    schemaVersion 1
    daoPackage 'com.xxx.ooo.greendaodemo.greendao'
    targetGenDir 'src/main/java'
}
schemaVersion: 版本号,可用于数据库升级
daoPackage: 自动生成实体的路径
targetGenDir: 自动生成实体的路径
daoPackage和targetGenDir的配置组合成一个完整的路径,最终的路径为当前Module下:
src/main/java/com.xxx.ooo.greendaodemo.greendao
Step 5:  创建实体类
实体类代码如下:
@Entity
public class Student {
    @Id
    private String mId;
    private String mName;
    private int mGender;
    @Generated(hash = 442482468)
    public Student(String mId, String mName, int mGender) {
        this.mId = mId;
        this.mName = mName;
        this.mGender = mGender;
    }
    @Generated(hash = 1556870573)
    public Student() {
    }
    public String getMId() {
        return this.mId;
    }
    public void setMId(String mId) {
        this.mId = mId;
    }
    public String getMName() {
        return this.mName;
    }
    public void setMName(String mName) {
        this.mName = mName;
    }
    public int getMGender() {
        return this.mGender;
    }
    public void setMGender(int mGender) {
        this.mGender = mGender;
    }
}
做完以上5个步骤之后,重新编译,会自动生成3个类,分别是:

图片.png
[本章完...]