5分钟带你了解Android Room

1、前言

最近在开发中,Room用的比较多,时不时要查资料,干脆写一篇Room的使用和Room的封装。如果写的不好,或者有错误之处,恳请在评论、私信、邮箱指出,万分感谢🙏

2、添加依赖

dependencies {implementation "androidx.room:room-ktx:2.4.0"
}

2、Entity

Entity是指代表数据库中的表的类,可以使用注解来定义表中的列。一个Entity类应该至少有一个主键字段,并且可以包含其他字段,如下面的例子所示:

@Entity(tableName = "user")
data class User(@PrimaryKey val id: Int,@ColumnInfo(name = "name") val name: String,@ColumnInfo(name = "email") val email: String
)

3、DAO

DAO是指数据访问对象,用于定义访问数据库的方法。可以使用注解来指定SQL查询,也可以使用Room提供的一些查询方法。例如,以下是一个包含一些基本查询的DAO示例:

@Dao
interface UserDao {@Query("SELECT * FROM user")fun getAll(): List<User>@Query("SELECT * FROM user WHERE id = :id")fun getById(id: Int): User?@Insertfun insert(user: User)@Updatefun update(user: User)@Deletefun delete(user: User)
}

4、Database

Database是指数据库对象,包含与数据库相关的配置信息,如版本号和实体类的列表。可以使用注解来指定数据库的配置信息和包含的实体类,如下面的例子所示:

@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {abstract fun userDao(): UserDaocompanion object {private var INSTANCE: AppDatabase? = nullfun getInstance(context: Context): AppDatabase {return INSTANCE ?: synchronized(this) {val instance = Room.databaseBuilder(context.applicationContext,AppDatabase::class.java,"app_database").build()INSTANCE = instanceinstance}}}
}

5、获取DAO实例

使用Database对象的实例方法获取DAO接口的实例

val db = AppDatabase.getInstance(context)
val userDao = db.userDao()

6、调用DAO方法

使用DAO接口的实例方法来访问数据库

val users = userDao.getAll()
val user = userDao.getById(1)
val newUser = User(2, "鸡你太美", "jinitaimei@qq.com")
userDao.insert(newUser)
newUser.email = "jinitaimei@qq.com"
userDao.update(newUser)
userDao.delete(newUser)

7、使用步骤

以上是Room的三个主要组成部分,下面是使用Room的一些基本步骤:

  1. 添加依赖项:在项目的build.gradle文件中添加Room库的依赖项。
  2. 创建Entity类:创建一个或多个Entity类来表示数据库中的表。
  3. 创建DAO接口:创建一个或多个DAO接口来定义访问数据库的方法。
  4. 创建Database对象:创建一个继承自RoomDatabase的抽象类来表示数据库对象,并使用@Database注解指定数据库的配置信息和包含的实体类。
  5. 获取DAO实例:使用Database对象的实例方法获取DAO接口的实例。
  6. 调用DAO方法:使用DAO接口的实例方法来访问数据库。

下面说点其他的,嘻嘻

8、事务(Transaction)

在对数据库进行多次操作时,可以使用事务来保证数据的一致性和完整性。在Room中,可以使用@Transaction注解来指定一个方法是事务,例如:

@Transaction
fun updateUserData(user: User, address: Address) {userDao.update(user)addressDao.update(address)
}

9、数据库迁移

当你需要修改数据库架构时,可以使用Room的数据库迁移功能来升级或降级数据库。在Room中,可以使用@Database注解中的version属性来指定数据库版本号,如果你需要进行迁移,你可以创建一个Migration对象,它包含了旧版本到新版本的变化信息,并将其添加到@Database注解中的migrations属性中,例如:

@Database(entities = [User::class], version = 2, exportSchema = false,migrations = [Migration(1, 2) { database ->database.execSQL("ALTER TABLE user ADD COLUMN phone TEXT NOT NULL DEFAULT ''")}]
)
abstract class AppDatabase : RoomDatabase() {// ...
}

10、视图(View)

在一些情况下,你可能需要使用多个表中的数据来创建一个视图(数据库视图!不是android.view)。在Room中,你可以使用@DatabaseView注解来定义一个视图,并使用@Query注解来指定视图的查询语句,例如:

@DatabaseView("SELECT user.id, user.name, address.city, address.country FROM user " +"INNER JOIN address ON user.address_id = address.id"
)
data class UserAddress(val id: Int,val name: String,val city: String,val country: String
)@Dao
interface UserAddressDao {@Query("SELECT * FROM user_address")fun getAll(): List<UserAddress>
}

11、Flow!

实际上也支持RXJava,但是我不喜欢RX,可以结合Room、Flow和网络请求,做很酷的事情

@Dao
interface UserDao {@Query("SELECT * FROM user WHERE id = :id")fun getById(id: Int): Flow<User>@Query("SELECT * FROM user")fun getAll(): Flow<List<User>>
}

12、结尾

实际上,Room的应用远不止如此,如果有人感兴趣的话,我就出下一期吧!比如封装一个Room的数据库层

13、感谢

  1. 校稿:ChatGpt/Bing
  2. 文笔优化:ChatGpt/Bing/秘塔写作猫

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 7 天,点击查看活动详情”

作者:AlbertZein
链接:https://juejin.cn/post/7203911920637968444

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。

在这里插入图片描述
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

全套视频资料:

一、面试合集
在这里插入图片描述
二、源码解析合集

在这里插入图片描述
三、开源框架合集

在这里插入图片描述
欢迎大家一键三连支持,若需要文中资料,直接点击文末CSDN官方认证微信卡片免费领取↓↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/40881.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI自动生成代码,是时候冷静下来思考如何保障代码安全了

HDC期间可参与华为开发者大会Check新人抽奖活动&#xff0c;活动链接在文末。 华为开发者大会2023将于7月7日与各位开发者进行见面&#xff0c;本次大会的主题演讲内容为&#xff1a;AI重塑千行百业。 自从AI聊天被推出之后&#xff0c;其热度就一直是高居不下。身边的小伙伴们…

如何将数据表格快速转换成LaTeX格式?

1.首先&#xff0c;在这个网站Comprehensive TEX Archive Network中下载宏文件。不要担心内存问题&#xff0c;很小的&#xff0c;下载后只有几百k。 2.其次&#xff0c;打开你的excel&#xff0c;将下载后的文件直接拖拽到excel表中&#xff0c;excel表格顶部会出现加载项这个…

油猴Tampermonkey及脚本使用

用Chrome浏览器的应该都知道&#xff0c;Chrome的优势之一就是有各种拓展的插件&#xff0c;使得我们浏览&#xff0c;工作效率都更高。 今天给大家推荐的一款”神器插件”叫 油猴&#xff0c;英文为 Tampermonkey 油猴是什么 Tampermonkey 是一款浏览器脚本管理插件&#x…

油猴(Tampermonkey)使用教程

油猴有很大的可玩性&#xff0c;里面只有你想不到的&#xff0c;没有他做不到的。下面是油猴的安装步骤以及使用方法~~ 安装 1.win10系统下&#xff0c;打开“开始”&#xff0c;找到微软的商店 2.打开之后&#xff0c;右上角搜索Tampermonkey。 3.安装油猴APP。&#xff08…

超简单安装油猴(tampermonkey)脚本及使用教程

超简单的油猴安装教程 第一步第二步第三步 第一步 下载Tampermonkey.crx (1.24MB) 提取码&#xff1a;nb1l 第二步 点击谷歌浏览器右上角&#xff0c;找到更多工具&#xff0c;然后点击拓展程序。 打开开发者模式 第三步 简单拖拽&#xff0c;把下载好的文件拖拽进第二步…

Chrome油猴(Tampermonkey)脚本使用及常用脚本分享

在我们使用浏览器的时候总是抱怨他的功能不够强大&#xff0c;缺少这个缺少那个&#xff0c;那么好&#xff0c;浏览器支持的一强大的功能-----扩展&#xff0c;也就是我们常说的插件&#xff0c;在这里我要介绍的是一款特别好用的插件&#xff0c;用来管理用户的脚本&#xff…

油猴脚本手机版|油猴tampermonkey手机版

手机浏览器中的功能太少&#xff0c;想下载一些插件&#xff1f;那么推荐你先安装个油猴脚本手机版&#xff0c;也就是油猴tampermonkey手机版&#xff0c;这是备受大家喜欢的一款类似电脑浏览器中的油猴一样的手机插件脚本&#xff0c;相信在电脑中使用过该插件的小伙伴们都知…

最简单的油猴(tampermonkey)脚本安装及使用教程-2023

1.下载压缩包 链接&#xff1a;https://pan.baidu.com/s/1JwPMWa8ZWh54VTC4Iopm2w?pwda0fi 提取码&#xff1a;a0fi 2.下载好的文件解压 3.点击谷歌浏览器右上角&#xff0c;找到更多工具&#xff0c;然后点击拓展程序。 4.加载已解压程序 5.成功

油猴使用教程

如何使用油猴脚本 安装脚本管理器安装脚本使用脚本 安装脚本管理器 方式一&#xff08;推荐&#xff09;&#xff1a; GreasyFork官方网址 进入官网根据自己的浏览器下载对应的脚本管理器&#xff0c;下面以Microsoft Edge为例安装脚本管理器。 根据提示安装即可&#xff08;…

油猴脚本安装以及使用方法

使用油猴脚本。首先得在Edge浏览器中安装油猴的拓展。打开到如上图所示的加载项页面。然后搜索Tampermonkey&#xff0c;图中所示的第三个&#xff0c;点击获取安装成功油猴了。接下来步骤&#xff0c;打开拓展显示→点击获取新脚本→搜索优学院→第一个安装显示出来的脚本安装…

Tampermonkey(油猴)脚本编写快速入门

目录 油猴脚本概述 脚本注释/注解 脚本权限 grant 添加新脚本 自定义网页倒计时 网页浏览离开黑屏保护 微博视频下载助手 华为云工作项列表突出展示工作项 Greasy Fork 发布脚本 油猴脚本概述 Tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器&#…

油猴脚本(Tampermonkey)的获取与简单使用

油猴脚本的使用 什么是油猴脚本 「油猴」可以通过安装各类脚本对网站进行定制。当然伟大的脚本面向的是所有上网者&#xff0c;所以借由各位大神的脚本我们能实现更多更强大的功能&#xff0c;例如&#xff1a; 直接下载百度网盘文件(全速)重新定制繁杂的微博页面去掉视频播放…

关于Tampermonkey(油猴)的安装和使用的小白教程

一、Tampermonkey的介绍 Tampermonkey是一个神奇的网络插件&#xff0c;真的是新时代的黑科技&#xff0c;学生党的福音。Tampermonkey对于我来说可是个 好东西。请一定要看下去&#xff01;&#xff01; 二、Tampermonkey的安装所需 1.Google Chrome浏览器&#xff08;其他…

油猴的详细安装(google chrome)

GoogleChrome 一、第一种为了方便我们直接在网盘中获取油猴 一、第一种为了方便我们直接在网盘中获取油猴 tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器&#xff0c;它适用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。虽然有些受支持的浏…

油猴(Tampermonkey)安装教程

油猴简介 Tampermonkey&#xff08;油猴&#xff09;是一款免费的浏览器扩展和最为流行的用户脚本管理器&#xff0c;它适用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。虽然有些受支持的浏览器拥有原生的用户脚本支持&#xff0c;但 Tampermonkey 将在您的用…

使用Tampermonkey油猴子给浏览器开个挂

油猴简介 一、油猴是什么 油猴(Tampermonkey)是免费的浏览器扩展和用户脚本管理器, 油猴子很特别, 它本身是一个无限手套(脚本管理器), 通过安装无限宝石(脚本), 能为我们提供超神的功能!它可以应用在多款浏览器上&#xff0c;比如谷歌浏览器&#xff0c;QQ浏览器&#xff0c…

【关于油猴的安装和使用的教程】

【 关于油猴的安装和使用的教程】 1.0 油猴简介2.0 安装环境2.1 安装Google Chrome2.2 下载油猴 3.0 总结参考文献 1.0 油猴简介 Tampermonkey是一个神奇的网络插件&#xff0c;真的是新时代的黑科技&#xff0c;学生党的福音。Tampermonkey对于我来说可是个 好东西。请一定要…

很简单的安装油猴(tampermonkey)脚本及使用教程

超简单的油猴安装教程 第一步 第二步 第三步 第一步 下载Tampermonkey.crx (1.24MB) 提取码&#xff1a;2264 第二步 点击谷歌浏览器右上角&#xff0c;找到更多工具&#xff0c;然后点击拓展程序。 打开开发者模式 第三步 简单拖拽&#xff0c;把下载好的文件拖拽进…

油猴的简介和安装

目录 1.油猴简介 2.油猴插件安装 方法1 方法2 3.获取油猴脚本 4.脚本的使用 4.1 脚本的设置及功能 4.2 安装油猴脚本 4.3 新建脚本 5.脚本编写方法 功能注释 脚本权限 编写脚本 1.油猴简介 油猴脚本是一款免费的浏览器扩展和最为流行的用户脚本管理器&#xff0c…

油猴Tampermonkey安装使用教程

油猴可以说是一个无所不能的网络插件&#xff0c;可以说是学生党的大杀器&#xff01; Tampermonkey安装步骤 1.下载油猴 油猴官网https://www.tampermonkey.net/ 官网页面如下 &#xff0c;黑色的是稳定版&#xff0c;红色的是测试版&#xff0c;点击下载然后获取就ok了。 2.…