GreenDao_基本配置和使用

核心类介绍

1.DaoMaster
它持有数据库对象(SQLiteDataBase),并且提供了创建和删除表的静态方法。有两个内部类,OpenHelper、DevOpenHelper实现SQLiteOpenHelper,用来创建数据库表结构。
2.DaoSession:
DaoSession用来管理Dao对象,可通过get方法,获取XXDao对象,进行对表的基本操作。DaoSession本身也提供了一些基本的持久性方法,例如:插入,删除,更新等。
3.Dao
实体访问对象,对每个实体xx,GreenDao会生成一个xxDao对象,该对象有更多的持久方法,可以对表进行操作,例如:count,loadAll和insertInTx。
4.实体类:
持久对象,通常采用标准的java属性(如javaBean)来标识数据库对象。

GreenDao相关配置

1.在工程目录的build.gradle下添加仓库和插件

       mavenCentral()
        
       classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'

配置图如下:
GreenDao_基本配置和使用_第1张图片
2.在app目录的build.gradle下添加相关库

plugins {
    id 'com.android.application'
    id 'org.greenrobot.greendao'
}
dependencies {
    implementation 'org.greenrobot:greendao:3.3.0'
    implementation 'org.greenrobot:greendao-generator:3.3.0'
}

配置图如下:
GreenDao_基本配置和使用_第2张图片
注意:添加库依赖和插件依赖,版本保持一致,不然可能会报错。

3.GrenDao版本,生成核心类路径配置

greendao {
    schemaVersion 2    //数据库版本 ,
    daoPackage 'com.zheng.greendaodemo.green'    //可指定自动生成类的路径
    targetGenDir 'src/main/java'
}

------------------------------到这里GreenDao的基本配置就Ok了------------------------------

GreenDao基本使用

1.首先定义一个实体类,注意使用@Entity 标识

@Entity
public class Animals {
    @Id(autoincrement = true)
    private  Long id;             //ID 设置自增长
    private String name;      //名称
    private String age;         //年龄
    private String color;       //颜色
    private String address;  //地址
    }

创建完之后,标题栏Build-Mack Project(ctr+F9),或者有个绿色小锤子,如图:
GreenDao_基本配置和使用_第3张图片
make project之后,有两个变化
(1).实体类:会自动生成一个有参构造方法和一个无参构造方法,并为属性添加get和set方法,如图:
GreenDao_基本配置和使用_第4张图片
(2).在src/main/java/包下面,会自动生成前面介绍的类,Master、Session、Dao。(DataOpenHelper,MigrationHelper请忽略,这个是自己添加的自动升级的类)如图:
GreenDao_基本配置和使用_第5张图片
注:实体类中如果有部分属性不想写入数据库,可以查看相关限制。

2.实例化DataOpenHelper、DaoMaster、DaoSession,获取Session,从而获取Dao操作类。可以自己封装一个单例获取。

    DataOpenHelper dataOpenHelper = new DataOpenHelper(sContext, "test", null);
    DaoMaster daoMaster = new DaoMaster(dataOpenHelper.getWritableDb());
    DaoSession daoSession = daoMaster.newSession();
    AnimalsDao animalsDao = daoSession.getAnimalsDao();

获取到的animalsDao对象,就可以对其进行增删给查操作。

基本增删改查操作

(1).插入:
例如:插入猫,颜色白色,地址xx1巷2号

 Animals animal = new Animals(null,"猫","white","xx1巷2号");
  mAnimalsDao.insert(animal);

(2).删除:
例如:根据条件删除Name 字段为”猫“的记录

mAnimalsDao.queryBuilder().where(AnimalsDao.Properties.Name.eq("猫")).buildDelete().executeDeleteWithoutDetachingEntities();

(3).更新
例如:将Name字段为猫的age字段更新为100

Query unique = mAnimalsDao.queryBuilder().where(AnimalsDao.Properties.Name.eq("猫")).build();
                for (Animals animals : unique.list()) {
                    if (animals != null) {
                        animals.setAge("100");
                        mAnimalsDao.update(animals);
                    }
                }

注:这里查询结果可能不唯一,如果唯一可以用unique()标志唯一性。

(4).查询
例如:查询所有数据

List animalsList = mAnimalsDao.queryBuilder().list();

关于GreenDao的基本配置和简单的增删改查介绍完毕

特别声明:所有内容也是集各家之所长,仅记录学习,如有侵权或不对之处,还请告知,定当删除或改正。

你可能感兴趣的:(android,android,android,studio,数据库)