android room 主线程,Android Jetpack之Room篇

本文详细介绍了Android Jetpack组件Room的使用,包括Room的组件、基本使用流程、配置编译器选项、创建模型类、Dao操作、数据库创建及管理、事务处理、与LiveData和RxJava的结合使用等,帮助开发者理解并掌握Room数据库的实践应用。
摘要由CSDN通过智能技术生成

Room系列专题

引用

12345678910

// Room componentsimplementation "androidx.room:room-runtime:2.2.0-rc01"

annotationProcessor "androidx.room:room-compiler:2.2.0-rc01"

// kotlin扩展和协程支持implementation "androidx.room:room-ktx:2.2.0-rc01"

//RxJava 支持库implementation "androidx.room:room-rxjava2:2.2.0-rc01"

// 可选 - Guava 的支持库implementation "androidx.room:room-guava:2.2.0-rc01"

基本使用

Room 主要包含三个组件:

Database: 包含数据库持有者,作为与应用持久化相关数据的底层连接的主要接入点。这个类需要用 @Database 注解,并满足下面条件:

必须是继承 RoomDatabase 的抽象类

注解中包含该数据库相关的实体类列表

包含的抽象方法不能有参数,且返回值必须是被 @Dao 注解的类

Entity: 表示了数据库中的一张表

DAO: 包含了访问数据库的一系列方法

584b81ff9aa1bacdce1d29b179a2901f.png

简单使用流程

0.配置编译器选项

如果不配置,编译就会报错。

Room具有以下注释处理器选项:

room.schemaLocation:配置并启用将数据库模式导出到给定目录中的JSON文件中。

room.incremental:启用Gradle增量注释处理器。

room.expandProjection:将Room配置为重写查询,以使其顶部的星形投影扩展为仅包含DAO方法返回类型中定义的列。

代码配置如下:

1234567891011121314

android {

...

defaultConfig {

...

javaCompileOptions {

annotationProcessorOptions {

arguments = [

"room.schemaLocation":"$projectDir/schemas".toString(),

"room.incremental":"true",

"room.expandProjection":"true"]

}

}

}

}

1.创建模型类

123456789101112131415161718192021222324252627282930

@Entity(tableName

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值