注意事项:
数据库建表语句要跟定义的数据类字段属性是否为空要一致。
一、定义数据类
1.1、数据类属性可以为空时如下所示,类型名称后面带符号“?”:
val prevKey: Int?
1.2、数据类属性不可以为空时如下所示:
val tId: String
二、创建数据库表
2.1、字段数据可以为空
`prevKey` INTEGER
2.2、段属性不可以为空
`tId` TEXT NOT NULL
三、代码块示例
3.1、定义完整数据库的数据类如下所示:
@Entity(tableName = "remote_keys")
data class RemoteKeys(
@PrimaryKey val tId: String,
val prevKey: Int?,
val nextKey: Int?
)
3.2、定义完整数据库升级,创建某张表的方法如下所示:
val MIGRATION_3_4 = object : Migration(3, 4) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL(
"CREATE TABLE `remote_keys` (`tId` TEXT NOT NULL, `prevKey` INTEGER, `nextKey` INTEGER, PRIMARY KEY(`tId`))"
)
}
}
四、其他
数据库升级时,对表添加属性字段同理,也需要注意字段是否可以为空的处理。