Room 是在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。

Room 包含 3 个重要部分:

数据库:包含数据库持有者,并作为应用已保留的持久关系型数据的底层连接的主要接入点。

Entity:表示数据库中的表。

DAO:包含用于访问数据库的方法。

基本使用步骤:

1、导入配置

dependencies {

def room_version = "2.2.5"

implementation "androidx.room:room-runtime:$room_version"

annotationProcessor "androidx.room:room-compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor

// 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、创建表

@Entity

public class User {

@PrimaryKey

public int uid;

@ColumnInfo(name = "first_name")

public String firstName;

@ColumnInfo(name = "last_name")

public String lastName;

}

3、创建Dao

包含访问数据库的一系列方法。

@Dao

public interface UserDao {

@Query("SELECT * FROM user")

List getAll();

@Query("SELECT * FROM user WHERE uid IN (:userIds)")

List loadAllByIds(int[] userIds);

@Query("SELECT * FROM user WHERE first_name LIKE :first AND " +

"last_name LIKE :last LIMIT 1")

User findByName(String first, String last);

@Insert

void insertAll(User... users);

@Insert

void insert(User user);

@Delete

void delete(User user);

}

4、创建数据库

@Database(entities = {User.class}, version = 1)

public abstract class AppDatabase extends RoomDatabase {

public abstract UserDao userDao();

}

5、使用

AppDatabase db = Room.databaseBuilder(getApplicationContext(),

AppDatabase.class, "database-name").build();

db.userDao().insert(new User());

以上就是Android Room的使用详解的详细内容,更多关于Android Room的使用的资料请关注脚本之家其它相关文章!

android room 教程,Android Room的使用详解相关推荐

  1. Android系列教程之七:EditText使用详解-包含很多教程上看不到的功能演示

    写道 标题有点大,说是详解,其实就是对EditText的一些常用功能的介绍,包括密码框,电话框,空白提示文字等等的讲解,尽量的介绍详细一点,也就是所谓的详解了..呵呵 广告一下我的应用"我团 ...

  2. 【转】Android APK反编译就这么简单 详解(附图)

     转自:http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 分类: and ...

  3. Android 8.0学习(32)---Android 8.0源码目录结构详解

    Android 8.0源码目录结构详解 android的移植按如下流程:     (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来.     (2)正确挂载文件系统 ...

  4. android开发教程,android开发入门教程

    所谓知己知彼才能百战百胜,想学好android就必须先了解 android是什么意思 android环境搭建 Android一词的本义指"机器人",同时也是Google于2007年 ...

  5. Android进阶笔记:Messenger源码详解

    Messenger可以理解为一个是用于发送消息的一个类用法也很多,这里主要分析一下再跨进程的情况下Messenger的实现流程与源码分析.相信结合前面两篇关于aidl解析文章能够更好的对aidl有一个 ...

  6. android中怎么网络判断,Android中判断网络是否连接实例详解

    Android中判断网络是否连接实例详解 在android中,如何监测网络的状态呢,这个有的时候也是十分重要的,方法如下: public class ConnectionDetector { priv ...

  7. android组件用法说明,Android第三方控件PhotoView使用方法详解

    Android第三方控件PhotoView使用方法详解 发布时间:2020-10-21 15:06:09 来源:脚本之家 阅读:74 作者:zhaihaohao1 PhotoView的简介: 这是一个 ...

  8. Android 颜色渲染(九) PorterDuff及Xfermode详解

    Android 颜色渲染(九)  PorterDuff及Xfermode详解 之前已经讲过了除ComposeShader之外Shader的全部子类, 在讲ComposeShader(组合渲染)之前,  ...

  9. android 截图 listview,Android屏幕及view的截图实例详解

    Android屏幕及view的截图实例详解 屏幕可见区域的截图 整个屏幕截图的话可以用View view = getWindow().getDecorView(); public static Bit ...

  10. Android消息传递之EventBus 3.0使用详解

    前言: 前面两篇不仅学习了子线程与UI主线程之间的通信方式,也学习了如何实现组件之间通信,基于前面的知识我们今天来分析一下EventBus是如何管理事件总线的,EventBus到底是不是最佳方案?学习 ...

最新文章

  1. 甲小姐对话稚晖君:深度学习并非AI的终点
  2. 2019年春季学期第九周作业
  3. httpserver
  4. el-menu实现路由跳转及当前页的导航
  5. 用数据分析福尔摩斯探案集,里面有你不曾发现的秘密
  6. MailKit使用IMAP读取邮件找不到附件Attachments为空的解决方法
  7. [备忘]方正字库中英文对照表
  8. 计算机专业的学生怎样练习编程才能把编程学精通?
  9. 清翔51单片机开发板及原理图-去年购买的
  10. 上海麻辣马资深程序员叶劲峰:我的游戏人生
  11. oracle 18c,Oracle 18c
  12. Jhipster生成前端为Vue的项目引入Element-UI
  13. JAVA教材(推荐新手学习)
  14. Eclipse+webservice简单实例搭建
  15. java 委派关系_一文读懂java类加载之双亲委派机制
  16. 解决 Vant中 输入框(Field)组件获取不到输入值
  17. yii2高级模板安装和yii migrate的使用
  18. idea报错:org.codehaus.plexus.component.repository.exception.ComponentLookupException
  19. linux qt地图开发教程,基于QT的电子地图的设计与实现
  20. TeraData Basics

热门文章

  1. Multisim基础 电流控制的电流源 简单示例
  2. 第十一部分 项目采购管理
  3. linux 追加多行文件,linux每行追加内容
  4. uniapp-mixpanel用户行为分析埋点统计插件
  5. 格兰富Grundfos CM3-2 A-R-A-E-AVBE F-A-A-N
  6. 蓝桥杯 Python 练习题 数列排序
  7. Java制作PDF转图片小工具
  8. 机器学习——特征工程——数据的标准化(Z-Score,Maxmin,MaxAbs,RobustScaler,Normalizer)
  9. 删除自定义reg注册表
  10. 破解压缩包密码-两行命令