GreenDao

GreenDao配置依賴

工程配置:添加插件 更好支持GreenDao

buildscript {
    repositories {
    jcenter()
    mavenCentral() // 添加的代碼
     }
    dependencies {
     classpath 'com.android.tools.build:gradle:2.3.3'
    classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
            }
}

項(xiàng)目配置:添加插件

apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin

項(xiàng)目配置:添加依賴

dependencies {
//greendao
implementation 'org.greenrobot:greendao:3.2.2' // add library
}

初始化GreenDao配置

greendao{
    schemaVersion 1 //數(shù)據(jù)庫版本號
    daoPackage 'com.example.lizhengjun.dao'  //數(shù)據(jù)庫全路徑
    targetGenDir 'src/main/java'  //存放位置
 }
    
schemaVersion--> 指定數(shù)據(jù)庫schema版本號,遷移等操作會用到;
daoPackage --> dao的包名,包名默認(rèn)是entity所在的包;
targetGenDir --> 生成數(shù)據(jù)庫
  1. 配置文件中的設(shè)置
  2. 設(shè)置Green中的DaoMaster/DaoSession/實(shí)體類Dao生成路徑
  3. 設(shè)置實(shí)體類
    @Entity
    public class Student {
    
        @Id(autoincrement = true)
        private Long id;
    
        @Property
        @NotNull
        private String name;
    
        @Property
        private int age;
    }
  1. 文件生成:Build - > ReBuild Project

  2. 在Application類中完成內(nèi)容配置(或者使用工具類)
    Application有自己的生命周期,OnCreate方法必須首先被調(diào)用
    ①本類對象的獲取
    ②DaoMaster、DaoSession對象的獲取
    ③提供方法,獲取DaoSession對象
    創(chuàng)建一個類 繼承Application
    (注意:這里繼承Application 需在清單文件中注冊(不然會報空指針異常))

  1. 獲取實(shí)體類Dao對象
    XXXDao xxxdao = App.getInstance().getDaoSession().getXXXDao();
    xxxdao.增刪改查();
    出處。

GreenDao判斷數(shù)據(jù)庫中是否存在

private boolean isHased(CollectionDbBean collectionDbBean) {
        List<CollectionDbBean> list = collectionDbBeanDao.queryBuilder()
                .where(CollectionDbBeanDao.Properties.Title.eq(collectionDbBean.getTitle())).list();
        if (list.size() > 0) {
            return true;
        } else {
            return false;
        }
    }

懶加載

    //如果用戶可見加載數(shù)據(jù),不可見清空
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser) {
            initData();
        } else {
            if (datas != null && datas.size() > 0) {
                datas.clear();
            }
        }
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容