添加 Room 的依赖项

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:
※参考官方文档 https://developer.android.com/jetpack/androidx/releases/room

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 Roomimplementation "androidx.room:room-ktx:$room_version"// optional - RxJava support for Roomimplementation "androidx.room:room-rxjava2:$room_version"// optional - Guava support for Room, including Optional and ListenableFutureimplementation "androidx.room:room-guava:$room_version"// Test helperstestImplementation "androidx.room:room-testing:$room_version"}

定义数据库表的实体类

@Entity(tableName = "person_t") //定义此类数据库 表person_t的实体类
public class People {@PrimaryKey(autoGenerate = true)private int id;private String name;private String sex;private int age;//构造函数public People(String name, String sex, int age) {this.name = name;this.sex = sex;this.age = age;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "People{" +"id=" + id +", name='" + name + '\'' +", sex='" + sex + '\'' +", age=" + age +'}';}
}

定义数据库对象类

@Database(entities = {People.class},version = 1) //定义此抽象类为数据库,对应的实体类为People ,数据库版本为1
public abstract class PeopleDataBase extends RoomDatabase {//静态的数据库对象private static PeopleDataBase INSTANCE;//获取数据库工具对象public abstract MyDao getMyDao();//创建DAO的抽象类//通过单例模式,实现只有一个数据库对象static synchronized PeopleDataBase getDataBase(Context context){if (INSTANCE==null){/*** 创建数据库对象* .allowMainThreadQueries()支持在主线程中 数据库进行增删改查*/INSTANCE= Room.databaseBuilder(context.getApplicationContext(),PeopleDataBase.class,"people_database").allowMainThreadQueries().build();}return INSTANCE;}
}

数据库的工具接口

@Dao //定义此接口为数据库的工具接口,实现增删改查
public interface MyDao {@Insertpublic void insertPeople(People...peoples);@Deletepublic void deletePeople(People...peoples);@Updatepublic void updatePeople(People...peoples);@Query("UPDATE person_t SET name = :name WHERE id = :id")public void updatePeopleName(int id,String name);@Query("DELETE FROM person_t")public void deleteAllPeople();@Query("SELECT * FROM person_t")public List<People> getPeoples();@Query("DELETE FROM person_t WHERE id = :ids")public void deletePeopleAtId(int ids);
}

数据库的调用

        //获取数据库对象peopleDataBase=PeopleDataBase.getDataBase(this);//获取数据库工具对象myDao=peopleDataBase.getMyDao();//插入People people1=new People("Jerry","女",25);myDao.insertPeople(people,people1);//更新(根据id更新数据)myDao.updatePeopleName(119,"Tom");//删除(根据id删除数据)myDao.deletePeopleAtId(80);//全部删除myDao.deleteAllPeople();

此博客只为记录学习,以后需要用的时候可以回顾知识。
如果有问题或者不完美的地方,欢迎指正。

Android 关于RoomDataBase的使用相关推荐

  1. android专题-数据库Room

    android专题-数据库Room Room介绍 room是Google官方推荐的ORM数据库框架,抽象出sqlite访问的数据库. 包含三大组件: Entity 定义 表结构,每个entity类对一 ...

  2. [Android Pro] AndroidX重构和映射

    原文地址:https://developer.android.com/topic/libraries/support-library/refactor https://blog.csdn.net/ch ...

  3. Android Jetpack架构组件之 Room(使用、源码篇)

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发 ...

  4. Android Jetpack组件之 Room使用-源码

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

  5. Android Jetpack组件总览

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

  6. Android 架构组件 - 让天下没有难做的 App

    Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作 Android Jetpack,它包含的组件如下图所示: 老的 support ...

  7. Android 数据存储 Room

    2019独角兽企业重金招聘Python工程师标准>>> 本来想查一下Android最新的数据存储知识,意外发现:官方推荐使用Room代替SQLite,那就学习一下把. Room由三部 ...

  8. Android Architecture Components 整理

    Android Architecture Components是谷歌在Google I/O 2017发布一套帮助开发者解决Android架构设计的方案. 里面包含了两大块内容: 生命周期相关的Life ...

  9. Android 架构 -- Room

    gradle依赖: // add for room implementation "android.arch.persistence.room:runtime:1.1.1" // ...

最新文章

  1. 《那些年啊,那些事——一个程序员的奋斗史》——39
  2. python api调用展示_Python百视api调用示例
  3. Datedifff返回两个日期之间的天数
  4. (转)Spring Boot(十二):Spring Boot 如何测试打包部署
  5. 华为p10 鸿蒙,全面上线!华为鸿蒙新消息传来,这是要彻底替换安卓
  6. jquery日历插件 途牛_jQuery日历插件FullCalendar中文版
  7. 重置计算机网络设置路由器,路由器怎样重新设置_路由器重新设置怎么弄-系统城...
  8. 树莓派+无人机Tello+计算棒实时飞行检测实现
  9. 1、Debian-Pi-Aarch64 系统安装
  10. matlab 相机焦距,世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真...
  11. matlab振动仿真实例小论文,《基于Matlab_Simulink的机械振动仿真研究》-毕业论文.doc...
  12. 电脑桌面便签提醒事项到期后怎么清除时间设置?
  13. c语言英文分词,英文分词的算法和原理
  14. MTD应用学习:mtd和mtdblock的区别
  15. msvcp120 mysql_Mysql 安装问题一:无法启动此程序,因为计算机丢失MSVCP120.dll,MSVCR120.dll...
  16. 2018AI行业地图丨CB Insights:这100家AI初创公司募资额超百亿
  17. 网站响应时间优化思路你知道几个?
  18. 常用的Git命令行指令以及图形化界面的简单操作
  19. 实习工作中的对于ubuntu系统命令使用的一个总结
  20. TimesTen 数据库复制学习:10. 定义classic复制

热门文章

  1. 2020/11/13·Java·人脸识别一键登录/注册
  2. 小米平板4.0系统怎么不Root激活Xposed框架的教程
  3. 什么塑造了今天的编程世界
  4. 数据描述:describe与unique
  5. 安全人员去年曾发现高通芯片一重大漏洞 影响骁龙845等30多款芯片
  6. Python学习(八)Python注释(多行注释和单行注释)用法详解
  7. STM32外设系列—L298N
  8. DATAGRID经典技巧(经典而且容易,好东西来的)
  9. word图文排版:来看看文本框的这些用法
  10. mysql8 绿色版安装