美文网首页
2019-03-11 GreeDao 简单使用

2019-03-11 GreeDao 简单使用

作者: 妖怪青同学 | 来源:发表于2019-03-17 23:25 被阅读0次

    github https://github.com/greenrobot/greenDAO

    一.添加AS依赖

    project build.gradle添加

    buildscript {
        repositories {
            //GreenDao 仓库
            jcenter()
        }
        dependencies {
            //GreeDao gradle插件
            classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
        }
    }
    

    app module 的build.gradle

    //使用插件
    apply plugin: 'org.greenrobot.greendao' // apply plugin
    //添加依赖
    dependencies {
          ...
         implementation 'org.greenrobot:greendao:3.2.2'
    }
    

    2.使用

    http://greenrobot.org/greendao/documentation/how-to-get-started/

    2.1GreeDao的注解

    image.png image.png greenDao 代码生成目录

    DB升级

    
    class MyOpenHelper : DaoMaster.DevOpenHelper {
    
        constructor(context: Context?, name: String?) : super(context, name)
        constructor(context: Context?, name: String?, factory: SQLiteDatabase.CursorFactory?) : super(context, name, factory)
    
        override fun onCreate(db: Database?) {
            super.onCreate(db)
            Logger.e(" MyOpenHelper  onCreate")
        }
    
        override fun onUpgrade(db: Database?, oldVersion: Int, newVersion: Int) {
            super.onUpgrade(db, oldVersion, newVersion)
           //todo .....
            Logger.e(" MyOpenHelper  onUpgrade  ===  oldVersion ==$oldVersion newVersion==$newVersion")
    
        }
    
        override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
            super.onUpgrade(db, oldVersion, newVersion)
           //todo .....
            Logger.e(" MyOpenHelper  onUpgrade 2 ===  oldVersion ==$oldVersion newVersion==$newVersion")
        }
    
    
    }
    

    CRUD

    object CardDao : BaseLocalDao<CardInfo>() {
        override fun queryLocalList(): List<CardInfo>? {
            return GreenDaoManager.getCardInfoDao().loadAll().filter { it.userID == ThirdLoginManager.getUserId() }
        }
    
        override fun queryLocalInfo(info: CardInfo): CardInfo? {
            return GreenDaoManager.getCardInfoDao().queryBuilder().where(CardInfoDao.Properties.Uuid.eq(info.uuid)).unique()
        }
    
        fun queryLocalInfo(uuid: String): CardInfo? {
            return GreenDaoManager.getCardInfoDao().queryBuilder().where(CardInfoDao.Properties.Uuid.eq(uuid)).unique()
        }
    
        override fun insertOrUpdateInfo(info: CardInfo, listener: IDataRepository.OnCommitListener?) {
            GreenDaoManager.getCardInfoDao().insertOrReplace(info)
        }
    
        override fun deleteInfo(info: CardInfo, listener: IDataRepository.OnCommitListener?) {
            GreenDaoManager.getCardInfoDao().deleteByKey(info.uuid)
        }
    
    
        fun insertOrUpdateInfos(list: List<CardInfo>) {
            if (list.isEmpty()) {
                return
            }
            GreenDaoManager.getCardInfoDao().insertOrReplaceInTx(list)
        }
    
    
    }
    

    相关文章

      网友评论

          本文标题:2019-03-11 GreeDao 简单使用

          本文链接:https://www.haomeiwen.com/subject/vspvpqtx.html