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)
}
}
网友评论