美文网首页
Kotlin语言Room数据库使用

Kotlin语言Room数据库使用

作者: 飞天_shine | 来源:发表于2020-01-10 10:54 被阅读0次

1.首先在app.gradle上方添加

//room数据库

apply plugin: 'kotlin-kapt'

2.添加所需要的库

implementation 'androidx.room:room-runtime:2.2.3'

annotationProcessor 'androidx.room:room-compiler:2.2.3'

kapt 'androidx.room:room-compiler:2.2.3'

androidTestImplementation 'androidx.room:room-testing:2.2.3'

3.创建是实体类User.kt

@Dao

interface UserDao {

@Query("SELECT * FROM Users WHERE userid = :id")

fun getUserById(id: String): User?

/*当数据库中已经有此用户的时候,直接替换*/

@Insert(onConflict = OnConflictStrategy.REPLACE)

fun insertUser(user: User)

@Update

fun upDateUser(user: User)

@Query("DELETE FROM Users")

fun deleteAllUsers()

}

4.创建dao文件UserDao.kt

@Dao

interface UserDao {

@Query("SELECT * FROM Users WHERE userid = :id")

fun getUserById(id: String): User?

/*当数据库中已经有此用户的时候,直接替换*/

@Insert(onConflict = OnConflictStrategy.REPLACE)

fun insertUser(user: User)

@Update

fun upDateUser(user: User)

@Query("DELETE FROM Users")

fun deleteAllUsers()

}

5.创建AppDatabase.kt

@Database(entities = arrayOf(User::class), version = 1)

abstract class UsersDatabase : RoomDatabase() {

abstract fun userDao(): UserDao

companion object {

@Volatile

private var INSTANCE: UsersDatabase? = null

fun getInstance(context: Context): UsersDatabase = INSTANCE ?: synchronized(this) {

INSTANCE ?: buildDatabase(context).also { INSTANCE = it }

}

private fun buildDatabase(context: Context) =

Room.databaseBuilder(

context.applicationContext,

UsersDatabase::class.java, "Sample.db")

.build()

}

}

6.使用

UsersDatabase .getInstance(this).userDao().insertUser()

相关文章

网友评论

      本文标题:Kotlin语言Room数据库使用

      本文链接:https://www.haomeiwen.com/subject/uispactx.html