
Jetpack Room 深入浅出
文章平均质量分 82
Jetpack Room 基本入门
fundroid
Android GDE(谷歌开发者专家)| 互联网大厂移动端架构师
展开
-
Jetpack Room入门系列:(六)配合LiveData等三方库的使用
作为Jetpack生态的成员,Room可以很好地兼容Jetpack的其他组件以及ACC推荐的三方库,例如LiveData、RxJava等。使用LiveDataDAO可以定义LiveData类型的结果,Room内部兼容了LiveData的响应式逻辑。可观察的查询通常的Query需要命令式的获取结果,LiveData可以让结果的更新可被观察(Observable Queries)。@Daointerface UserDao { @Query("SELECT * FROM users").原创 2021-01-17 16:17:45 · 777 阅读 · 0 评论 -
Jetpack Room入门系列:(五)数据库版本升级、数据迁移
当数据库的表结构发生变化时,我们需要通过数据库迁移(Migrations)升级表结构,避免数据丢失。例如,我们想要为User表增加age字段| uid | first_name | last_name |↓↓| uid | first_name | last_name | age |数据迁移需要使用Migration类:val MIGRATION_1_2 = object : Migration(1, 2) { override fun migrate(database: Supp.原创 2021-01-17 15:02:39 · 843 阅读 · 0 评论 -
Jetpack Room入门系列:(三)实体/数据表关系
对于关系型数据库来说,最重要的是如何将数据拆分为有相关关系的多个数据表。SQLite作为关系型数据库,允许entits之间可以有多种关系,Room提供了多种方式表达这种关系。@Embedded内嵌对象@Embedded注解可以将一个Entity作为属性内嵌到另一Entity,我们可以像访问Column一样访问内嵌Entity内嵌实体本身也可以包括其他内嵌对象data class Address( val street: String?, val state: String?, .原创 2021-01-17 01:09:42 · 922 阅读 · 0 评论 -
Jetpack Room入门系列:(二)使用DAO读写数据库
Room中使用Data Access Objects( DAO)对数据库进行读写,相对于SQL语句直接查询,DAO可以定义更加友好的API。DAO中可以自定义CURD方法,还可以方便地与RxJava、LiveData等进行集成。我们可以使用接口或者抽象类定一个DAO,如果使用抽象类,可以选择性的为其定义构造函数,并接受Database作为唯一参数。Room在编译期会基于定义的DAO生成具体实现类,实现具体CRUD方法。@Insert 插入@Insert注解插入操作,编译期生成的代码会将所有的参.原创 2021-01-16 21:27:12 · 1233 阅读 · 0 评论 -
Jetpack Room入门系列:(一)基本介绍
Android Jetpack的出现统一了Android开发生态,各种三方库逐渐被官方组件所取代。Room也同样如此,逐渐取代竞品成为最主流的数据库ORM框架。这当然不仅仅因为其官方组件的身份,更是因为其良好的开发体验,大大降低了SQLite的使用门槛。框架特点相对于SQLiteOpenHelper等传统方法,使用Room操作SQLite有以下优势:编译期检查SQL语句开发高效,避免大量模板代码API设计人性化,容易理解可以方便的与RxJava、 LiveData 或者 Kotlin Cor原创 2021-01-16 18:38:12 · 741 阅读 · 1 评论