Kotlin语言Room数据库使用

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数据库使用)