GreenDAO数据库升级问题的解决方法
关于GreenDAO在Android Studio的配置网上已经说的很多了,这里不再赘述。这篇文章主要讲一讲关于数据库版本升级的一些处理方式。我们边写边说:
以下代码为Kotlin语言编写,由于Kotlin也是一种基于JVM的语言,所以基本不影响Java开发者阅读
初始条件
目前信息:
version:1
db:my_db
table:user(id,name,age)
数据库管理器应该在Application或者其他地方以单例形式创建
private var master: DaoMaster? = null
object DBMaster {
fun init(context: Context, dbName: String) {
if (master == null) {
synchronized(DBMaster, {
->
if (master == null) {
var help = object : DaoMaster.DevHelper(context, dbName, null)
var db = help.writableDb
master = DaoMaster(db)
}
})
}
}
fun getMaster() = if (master == null) throw RuntimeException("not init") else master
fun newSession() = getMaster()?.newSession()
}
Generator类信息
class MyGenerator
fun main(args: Array<String>) {
val schema = Schema(1, "com.cxm.bean")
//这里创建了一个一张数据表
val note = schema.addEntity("User")
note.addIdProperty()
note.addStringProperty("name").notNull()
note.addIntProperty("age").notNull()
//以下操作寻找存放bean的目录
var path = MyGenerator::class.java.getResource(".").getPath()
path = path.substring(0, path.lastIndexOf("mydaogenerator/build/classes/main/com/xcm/"))
path += "app/src/main/java-gen"
//将创建好的Bean以及Dao文件存放到相应的目录
DaoGenerator().generateAll(schema, path)
}
以上基本信息就写好了,现在我们写