@Database(
version = MusicDatabase.LATEST_VERSION
entities = {Song.class, Artist.class}
autoMigrations = {
@AutoMigration (from = 1,to = 2,spec = MySpec.class)
exprotSchema = true
上面的案例提到了 @RenameColumn,相关的变更处理注解有如下几种:
- @DeleteColumn
- @DeleteTable
- @RenameColumn
- @RenameTable
假设在同一迁移中有多个更改需要配置,我们还可以通过这些可复用的注解简化处理。
Room2.4.0后其它一些新功能:
- 支持查询回调
- 支持原生 Paging 3.0 API
- 支持 RxJava3
- 支持 Kotlin Symbol Processing
(KSP)
Android Jetpack之Room的简单应用
1. jetpack简介
Jetpack 是一个丰富的组件库,它的组件库按类别分为 4 类,分别是架构(Architecture)、界面(UI)、行为(behavior)和基础(foundation)。每个组件都可以单独使用,也可以配合在一起使用。每个组件都给用户提供了一个标准,能够帮助开发者遵循最佳做法,减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者能够集中精力编写重要的业务代码。
2. Room简单介绍
Room是
def room_version = "2.2.5"
implementation "androidx.room:room-runtime:$room_version"
//java使用
annotationProcessor "androidx.room:room-compiler:$room_version"
//kotlin使用
//kapt "androidx.room:room-compiler:$room_versi
Android JetPack之ROOM(一)
ROOM是JetPack框架中的数据库操作部分,是对Android数据库SQLite的封装。使用户能够更方便的对数据库进行操作。
由于AndroidX和kotlin的原因,所以ROOM在版本上分为support版本和AndroidX版本,在语言上分为kotlin和java版本。本系列脱胎于实际开发经验,所以侧重于support版本和A...
Android Jetpack系列(一) Room前言Room简介Room使用1 引用2 编写Entity实体类2 编写Dao数据操作类3 编写Database数据库操作类4 调用示例
Jetpack是2017年谷歌在开发者大会上发布的一套开发工具。
Jetpack共包含4个部分:Architecture、Foundation、Behavior 以及 UI 。
其中的Architecture又称为AAC(Android Architecture Components),是谷歌推荐的android开
好的,下面是关于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:创建一个接口,其中包含用于访问数据库的方法。示例代码:
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数据库的基本步骤。当然,还有许多其他的高级用法和配置选项,可以根据具体需求进行学习和使用。