greendao3.2.2的配置与注解,映射

本文介绍了GreenDAO 3.2.2的配置步骤,包括在build.gradle文件中添加依赖和插件。此外,详细讲解了如何使用注解进行数据库实体的映射,如@entity、@property、@notnull等,并探讨了To-One和To-Many关系的建立、解析和更新。同时,文章还提到了索引的创建和作用,以及树形关系的建模方法。
摘要由CSDN通过智能技术生成

Greendao2.2.3环境配置

//在根目录下的build.gradle file:

buildscript {

    repositories {

        jcenter()

        mavenCentral() // add repository(有了jcenter可以不用配置mavenCentral

}  

greendao {
    //数据库的schema版本,也可以理解为数据库版本号
    
schemaVersion 1
    //设置DaoMaster、DaoSession、Dao包名,也就是要放置这些类的包的全路径。
    
daoPackage 'com.zhxy.www.test.greendao'
    
//设置DaoMaster、DaoSession、Dao目录
    
targetGenDir 'src/main/java'
}

 

    dependencies {

        classpath 'com.android.tools.build:gradle:2.3.0'

        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin

    }

}

// 在项目中的build.gradle file:

apply plugin: 'com.android.application'

apply plugin: 'org.greenrobot.greendao' // apply plugin

dependencies {

    compile 'org.greenrobot:greendao:3.2.2' // add library

}

Make project 一下让android studio下载相应的工具

然后再bean包下创建一个实体如people

然后make project一下自动生成的代码就出来了 ,可以在项目中自由使用

greendao中有三个基本的接口,分别是DaoMaster,DaoSession,Daos;

 

DaoMastergreendao的入口,持有SQliteDataBase对象,被用于管理DAO类。它有静态的方法用于创建表和删除表,内部类为openHelperDevOpenHelper

DaoSession管理着所有的可用的DAO对象,这些对象可以使用getter方法来获取。DaoSession针对实体提供一些普通的持久化方法,如insertloadrefresh,delete。另外DAOSession对象还可以用来标示追踪作用域

DAOS:数据访问对象用于持久化和查询实体。greendao为每一个实体生成一个DAO类,它持有的持久化方法比DAOSession多很多。

 

greendao的初始化为


3

4

5

6

7

// do this once, for example in your Application class

helper = new DaoMaster.DevOpenHelper(this, "notes-db", null);

db = helper.getWritableDatabase();//db是DataBase

daoMaster = new DaoMaster(db);

daoSession = daoMaster.newSession();

// do this in your activities/fragments to get hold of a DAO

noteDao = daoSession.getNoteDao();

 

Greendao 3及以上使用注解来定义实体


4

5

6

7

8

9

10

11

12

13

14

15

16

@Entity

public class User {

    @Id(autoincrement = true)

    private Long id;

 

    @Property(nameInDb = "USERNAME")

    private String name;

 

    @NotNull

    private int repos;

 

    @Transient

    private int tempUsageCount;

 

    ...

}

 

@entity注释将Java类用户转化为一个数据库支持的实体。这还将指导greenDAO生成必要的代码(例如DAOs),它只支持Java类。如果你喜欢像Kotlin这样的另一种语言,你的实体类仍然必须是Java。虽然没有任何附加参数通常是可以的,但是您仍然可以使用@entity来配置一些细节:注意,在使用分级插件时,当前不支持多个模式。目前,继续使用您的生成器项目。

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

@Entity(

      、//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值