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()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容