Android 关于RoomDataBase的使用
添加 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的使用相关推荐
- android专题-数据库Room
android专题-数据库Room Room介绍 room是Google官方推荐的ORM数据库框架,抽象出sqlite访问的数据库. 包含三大组件: Entity 定义 表结构,每个entity类对一 ...
- [Android Pro] AndroidX重构和映射
原文地址:https://developer.android.com/topic/libraries/support-library/refactor https://blog.csdn.net/ch ...
- Android Jetpack架构组件之 Room(使用、源码篇)
2019独角兽企业重金招聘Python工程师标准>>> 1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发 ...
- Android Jetpack组件之 Room使用-源码
1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...
- Android Jetpack组件总览
1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...
- Android 架构组件 - 让天下没有难做的 App
Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作 Android Jetpack,它包含的组件如下图所示: 老的 support ...
- Android 数据存储 Room
2019独角兽企业重金招聘Python工程师标准>>> 本来想查一下Android最新的数据存储知识,意外发现:官方推荐使用Room代替SQLite,那就学习一下把. Room由三部 ...
- Android Architecture Components 整理
Android Architecture Components是谷歌在Google I/O 2017发布一套帮助开发者解决Android架构设计的方案. 里面包含了两大块内容: 生命周期相关的Life ...
- Android 架构 -- Room
gradle依赖: // add for room implementation "android.arch.persistence.room:runtime:1.1.1" // ...
最新文章
- 《那些年啊,那些事——一个程序员的奋斗史》——39
- python api调用展示_Python百视api调用示例
- Datedifff返回两个日期之间的天数
- (转)Spring Boot(十二):Spring Boot 如何测试打包部署
- 华为p10 鸿蒙,全面上线!华为鸿蒙新消息传来,这是要彻底替换安卓
- jquery日历插件 途牛_jQuery日历插件FullCalendar中文版
- 重置计算机网络设置路由器,路由器怎样重新设置_路由器重新设置怎么弄-系统城...
- 树莓派+无人机Tello+计算棒实时飞行检测实现
- 1、Debian-Pi-Aarch64 系统安装
- matlab 相机焦距,世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真...
- matlab振动仿真实例小论文,《基于Matlab_Simulink的机械振动仿真研究》-毕业论文.doc...
- 电脑桌面便签提醒事项到期后怎么清除时间设置?
- c语言英文分词,英文分词的算法和原理
- MTD应用学习:mtd和mtdblock的区别
- msvcp120 mysql_Mysql 安装问题一:无法启动此程序,因为计算机丢失MSVCP120.dll,MSVCR120.dll...
- 2018AI行业地图丨CB Insights:这100家AI初创公司募资额超百亿
- 网站响应时间优化思路你知道几个?
- 常用的Git命令行指令以及图形化界面的简单操作
- 实习工作中的对于ubuntu系统命令使用的一个总结
- TimesTen 数据库复制学习:10. 定义classic复制