美文网首页
【白水日记】Room database

【白水日记】Room database

作者: d2665f7588cb | 来源:发表于2021-02-19 14:29 被阅读0次

    Room是Jetpack中的一个组件,处理和配置数据库的琐事,内部实现还是SQLite

数据通常使用数据类表示,使用函数get set修改访问,但在数据库中,需要使用实体和查询来操作

实体表示数据存储在数据库的对象,一个实体类对应一个表,每个实例对应表中的一行,每个属性对应表的一列

查询表示数据库中表或组合信息的请求,对执行的操作,常用的查询有增删改

room已经做了kotlin数据类存储到sqlite数据表中的实体的过程,同时实现了函数声明到sql查询的复杂工作

使用时,必须将每个实体定义为带注释的数据类,交互接口同样需要带上注释,也即dao对象,room使用这些对象进行创建表,操作查询

   定义一个数据类,在类名上注释

@Entity(tableName = "xxxxxx")

tableName可以不写,默认就是类名

定义一个主键,在属性上添加注释

@PrimaryKey(autoGenerate = true)

定义其他属性,在属性上添加如下注释

@ColumnInfo(name = "xxxxxx")

这样,数据dao就定义好了

---------------------------------------------------------------------------      关于操作,常用的就是@Insert,@Delete,@Update 

    进行相关操作,需要创建一个接口,用@Dao注释,接口主体内,新增一个insert()方法,上面使用@insert()注释,内部使用数据库实体类作为参数

update方法类似,query没有提供更详细的注释,需要在@Query之后写上详细的查询语句

@Query("SELECT * from xxx WHERE Id = :key")

方法的参数可以作为查询条件变量,只需要在前面加一个":"即可

@Delete方法表示删除一个条,但是对于清除表中所有的条目来说效率不高,如果只是清除数据,可以使用@Query()中执行DELETE语句进行删除

---------------------------------------------------------------------------

创建数据库,创建一个数据库,需要在类上面用@Database注释,数据库一般都是单例的,在getInstance方法中创建一个实例,如果库不存在,需要生成一个数据库,

@Database的参数中,使用entities表示实体类,version表示版本号

    database对象可以定义一个companion对象,允许不实例的情况下进行访问创建或获取,在kotlin中可以通过@Volatile注释设置INSTANCE对象

相关文章

  • 【白水日记】Room database

    Room是Jetpack中的一个组件,处理和配置数据库的琐事,内部实现还是SQLite 数据通常使用数据类表示...

  • Room database

    1,三角色(1)表:定义一个类,加上注解@Entity,类里需要定义主键,使用@PrimaryKey标识,如果主键...

  • Room

    Save data in a local database using Room Room 提供了一个Sqlite...

  • Android Jetpack架构组件-Room基本使用

    一、简介 Room有三个主要的组件:Database、Dao、Entity 数据库(Database):你可以使用...

  • Room Database入门指南

    说到Android端有哪些可以使用的数据库,大家首先想到的自然是SQLite这种带有官方属性加持的轻型的数据库。 ...

  • Database with Room using Rxjava

    Google发布了新的开源库Room,他是属于数据库层的,可以让我们顺畅的数据库,更多相关信息可以移步官方文档。在...

  • Android Room使用

    介绍 Room是Google提供的一个ORM库。Room提供了三个主要的组件: @Database:@Databa...

  • Room数据库的理解

    Room主要包含三个组件: 1. 数据库(Database) 数据库名,使用@Database注解的类应满足以下条...

  • AndroidX Room管理数据库 App50

    简易实现Room管理Sqlite数据库 数据库要放那种数据 实体行Entity 和列 Dao层 Database抽...

  • Jetpack 之 Room Database 简介及其使用

    简介 Room是SQLite之上的一个抽象层,通过Room,可以更加丝滑的使用SQLite的全部功能。并且,原本在...

网友评论

      本文标题:【白水日记】Room database

      本文链接:https://www.haomeiwen.com/subject/nxxwxltx.html