Android Room数据库怎么写
时间: 2023-10-03 15:03:58 浏览: 118
android数据库Room
好的,下面是关于Android Room数据库的简单介绍和使用方法:
Android Room是一种SQLite数据库的对象映射库,它提供了一种简单的方法来访问SQLite数据库,而无需编写复杂的SQL查询。它是Google推出的一种Jetpack组件,旨在帮助Android开发者更加简便地使用SQLite数据库。
下面是使用Android Room数据库的基本步骤:
1. 添加依赖项:在app/build.gradle文件中添加以下依赖项:
```
dependencies {
def room_version = "2.3.0"
// Room components
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
// optional - Kotlin Extensions and Coroutines support for Room
implementation "androidx.room:room-ktx:$room_version"
// optional - RxJava 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"
// Test helpers
testImplementation "androidx.room:room-testing:$room_version"
}
```
2. 创建实体:创建一个Java类或Kotlin数据类,用于表示数据库表中的一行数据。示例代码:
```
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
@ColumnInfo(name = "user_name") val userName: String,
@ColumnInfo(name = "user_age") val userAge: Int
)
```
3. 创建DAO:创建一个接口,其中包含用于访问数据库的方法。示例代码:
```
@Dao
interface UserDao {
@Query("SELECT * FROM users")
fun getAllUsers(): List<User>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertUser(user: User)
@Delete
fun deleteUser(user: User)
}
```
4. 创建数据库:创建一个继承自RoomDatabase的抽象类,并在其中声明用于访问DAO的抽象方法。示例代码:
```
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
```
5. 初始化数据库:在应用程序的入口点处初始化数据库,并使用它来获取DAO实例。示例代码:
```
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "database-name"
).build()
val userDao = db.userDao()
```
6. 使用DAO:使用DAO中定义的方法来访问数据库。示例代码:
```
val allUsers = userDao.getAllUsers()
userDao.insertUser(user)
userDao.deleteUser(user)
```
这些是使用Android Room数据库的基本步骤。当然,还有许多其他的高级用法和配置选项,可以根据具体需求进行学习和使用。
阅读全文