2023-02-24

android 使用Room数据库:
1、添加依赖:android7.0以上方式
dependencies {
def room_version = "2.3.0"

implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"

// optional - RxJava2 support for Room
implementation "androidx.room:room-rxjava2:$room_version"

// optional - Guava support for Room, including Optional and ListenableFuture
implementation "androidx.room:room-guava:$room_version"

// optional - Test helpers
testImplementation "androidx.room:room-testing:$room_version"

}
其中 def room_version = "2.3.0" 用于指定Room库的版本号,您可以根据自己的需求更改版本号。此外,根据您的项目,您可能不需要添加所有可选依赖项。

添加上述依赖项后,您就可以开始使用Room库了。

2、创建一个实体类(Entity)来表示你要在数据库中存储的数据。可以使用注解来指定表名、列名等信息,例如:
package com.example.kotlindemo.data

import androidx.room.Entity
import androidx.room.PrimaryKey

/**

  • 2、创建一个实体类(Entity)来表示你要在数据库中存储的数据。可以使用注解来指定表名、列名等信息,例如:
  • */
    @Entity(tableName = "users")
    data class User(
    @PrimaryKey val id: Int,
    val name: String,
    val age: Int
    )

3、创建一个数据访问对象(DAO)接口,它包含用于访问数据库的操作,例如插入、查询等。可以使用注解来指定操作的SQL语句,例如:
/**

  • 3、创建一个数据访问对象(DAO)接口,它包含用于访问数据库的操作,例如插入、查询等。可以使用注解来指定操作的SQL语句,例如:

  • */
    @Dao
    interface UserDao {

    /**

    • 查询数据
      使用@Query注解来定义查询数据的方法。例如:
    • */
      @Query("SELECT * FROM users ")
      fun getAllUsers():List<User>

    /**

    • 查询数据
      使用@Query注解来定义查询数据的方法。例如:
    • */
      @Query("SELECT * FROM users WHERE id = :userId")
      fun getUserById(userId:Int): User

    /**

    • 插入数据
      使用@Insert注解来定义插入数据的方法。例如:
    • */
      @Insert
      fun insertUser(user: User)

    /**
    *删除数据
    使用@Delete注解来定义删除数据的方法。例如:

    • */
      @Delete
      fun deleteUser(user: User)

    /**

    • 更新数据
      使用@Update注解来定义更新数据的方法。例如:
    • */
      @Update
      fun updateUser(user: User)
      }

4、创建一个数据库类,它包含用于获取DAO对象和管理数据库的方法。可以使用注解来指定数据库的版本号、表信息等,例如:
package com.example.kotlindemo.data

import androidx.room.Database
import androidx.room.RoomDatabase
import com.example.kotlindemo.interface.UserDao

/**

  • 4、创建一个数据库类,它包含用于获取DAO对象和管理数据库的方法。可以使用注解来指定数据库的版本号、表信息等,例如:
  • */
    @Database(entities = [User::class], version = 1)
    abstract class MyAppDatabase :RoomDatabase() {
    abstract fun userDao():UserDao
    }

5、room 实现数据增删改查
在应用程序中创建一个单例实例来获取MyAppDatabase对象。例如:
val db = Room.databaseBuilder(
applicationContext,
MyAppDatabase::class.java,"myAppDatabase"
).build()

    val userDao = db.userDao()

现在,你可以使用userDao对象来操作数据库了,例如:
1、insertUser插入数据

val users = userDao.getAllUsers();
userDao.insertUser(User(1,"Alice",25))
userDao.insertUser(User(2,"Jorge",35))

2、updateUser 更新数据
val user = userDao.getUserById(1)
user.age = 26
userDao.updateUser(user)

3、deleteUser 删除数据
val user = userDao.getUserById(1)
userDao.deleteUser(user)

4、查询数据getAllUsers/getUserById
使用@Query注解来定义查询数据的方法。例如:
val userDao = db.userDao()
val users = userDao.getAllUsers()

val user = userDao.getUserById(1)

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

推荐阅读更多精彩内容