首页
学习
活动
专区
圈层
工具
发布

Jetpack Room使用

Room使用 回顾 数据库有多张表,一张表只能记录一种Class,Class的具体属性是这个表的列;所有对表的操作都要通过Dao来访问 注解说明: @Enity 作用于Class上,表示创建一张表记录该...使用对应增删改查注解标识方法 @Database 声明数据库(需为abstract),该注解属性entities需声明该数据库中的所有表,version表示该数据库的版本,数据库中声明返回Dao实例的方法 使用流程 通过Room...let { return it } //创建Room数据库需要三个参数:1.上下文context,2.数据库Class 3.数据库名字...ClassImpl的实例 数据库Class名字和数据库名称 //build方法会反射创建M有MyDataBaseImpl类并调用该类的init方法 return Room.databaseBuilder...Transition标记方法,内部curd将按顺序执行 这两个生成的类可以在该目录下找到build/generated/source/kapt/debug/com/example/myapplication/room

51530
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    上手使用 Room Kotlin API

    在本文中我会告诉大家如何使用并且测试 Room Kotlin API,同时在介绍过程中,我也会为大家分享其工作原理。 我们将基于 Room with a view codelab 为大家讲解。...Room 会生成将数据插入数据库的全部操作,并且由于我们将函数定义为可挂起,所以 Room 会将整个操作过程放在后台线程中完成。...由于返回类型是 Flow,Room 会在后台线程中执行数据请求。...如果我们希望 Room 查询不是在 Room 自身创建的 IO Executor 中执行,而是在另外的 Executor 中执行,我们需要通过调用 setQueryExecutor() 将新的 Executor...更多相关信息请查阅我们的 Room 官方文档,如果想通过实践学习,可以访问 Room with a view codelab。

    1.3K30

    Room & Kotlin 符号的处理

    从 Room 2.4 开始,它对 KSP 有了实验性的支持,我们发现编译速度提高了 2 倍,特别是在全量编译的情况下。 本文内容重点不在注解的处理、Room 或者 KSP。...而在于重点介绍我们在为 Room 添加 KSP 支持时所面临的挑战和所做的权衡。为了理解本文您并不需要了解 Room 或者 KSP,但必须熟悉注解处理。...Room 工作原理简介 Room 的注解处理分为两个步骤。有一些 "Processor" 类,它们遍历用户的代码,验证并提取必要的信息到 "值对象" 中。...XTestInvocation.assertCompilationResult( assertion: (XCompilationResultSubject) -> Unit } 每次编译后,它都会调用结果断言 (如果没有失败提示...下一步 将 KSP 支持添加到 Room 只是第一步。现在,我们需要更新 Room 来使用它。

    1.2K30

    Android MVVM框架搭建(三)MMKV + Room + RxJava2

    implementation 'androidx.room:room-runtime:2.3.0' annotationProcessor 'androidx.room:room-compiler...可以的话就进行下一步了,Room的使用了。记得把测试的代码给删掉啊。 三、Room   Room 在开发阶段通过注解的方式标记相关功能,编译时自动生成响应的 impl 实现类。...LIMIT 1") Image queryById(int uid); @Insert(onConflict = OnConflictStrategy.REPLACE) void insertAll...biYingImgResponse.getImages().get(0); //保存到数据库 new Thread(() -> BaseApplication.getDb().imageDao().insertAll...由于读取速率可能 远大于 观察者处理速率,故使用背压 Flowable 模式,这是为了防止表中数据过多,读取速率远大于接收数据,从而导致内存溢出的问题,Completable就是操作完成的回调,可以感知操作成功或失败

    1.7K31

    Android—Room数据库(介绍)

    Room是什么? Room是一个持久性数据库。 Room持久性库提供了SQLite的抽象层,以便在充分利用SQLite的同时允许流畅的数据库访问。 为什么会选择Room?...因为Room有下面几个优点: ① SQL查询在编译时就会验证 - 在编译时检查每个@Query和@Entity等,这就意味着没有任何运行时错误的风险可能会导致应用程序崩溃(并且它不仅检查语法问题,还会检查是否有该表...1、在app/build.gradle中添加以下依赖 implementation 'android.arch.persistence.room:runtime:1.0.0' annotationProcessor...'android.arch.persistence.room:compiler:1.0.0' 你可以点击这里查看最新依赖版本号 2、创建JavaBean @Entity public class User...You can either provide room.schemaLocation annotation processor argument OR set exportSchema to false

    1.5K50
    领券