13.9 添加日程实体类
我们先从领域模型的建立开始。首先我们需要设计一个极简的待办事项的实体类 Todo, 它有主键 id、标题、内容三个字段。
@RealmClass
open class Todo : RealmObject() {
@PrimaryKey
open var id: String = "-1"
open var title: String = "日程"
open var content: String = "事项"
}
然后,我们写一个应用程序入口类MyTodoApplication
继承android.app.Application
, 在 onCreate() 里面初始化 Realm 数据库的配置。代码如下:
class MyTodoApplication : Application() {
override fun onCreate() {
super.onCreate()
val config = RealmConfiguration.Builder(this)
.name("realm.my_todos")// 库文件名
.encryptionKey(getKey()) // 加密
.schemaVersion(1) // 版本号
.deleteRealmIfMigrationNeeded()
.build()
Realm.setDefaultConfiguration(config)// 设置默认 RealmConfiguration
}
/**
* 64 bits
* @return
*/
private fun getKey(): ByteArray {
return byteArrayOf(0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1)
}
}
RealmConfiguration.Builder里面如果没有deleteRealmIfMigrationNeeded()的话,会如下报错误:
Caused by: io.realm.exceptions.RealmMigrationNeededException:
RealmMigration must be provided ...
at com.easy.kotlin.mytodoapplication.TodoListFragment.onActivityCreated(TodoListFragment.kt:36)
提示: 更多关于 realm 数据库的相关内容可参考 https://realm.io/docs/
当前内容版权归 JackChan1999 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 JackChan1999 .