美文网首页
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