Jetpack:Room超详细使用踩坑指南!,Android开发人员不得不收集的代码

  • 三、Room踩坑解答

一、简介

=======================================================================

ORM(Object Relational Mapping)关系映射库,在Sqlite上提供了一层封装,优化数据库操作的便捷性。

Room的架构图如下所示:

在这里插入图片描述

  • Entity:一个Entity对应于数据库的一张表。Entity类是Sqlite表结构对Java类的映射,在Java中可以被看作一个Model类。

  • Dao:即 Data Access Objects,数据访问对象。顾名思义,我们可以通过它访问对象。

​ 一个Entity对应一张表,而每张表都需要一个Dao对象,用于对表的增删改查。Room对象被实例化之后,我们就可以通过数据库实例得到Dao对象(Get Dao),然后通过Dao对象对表中的数据进行操作。

依赖

buildscript {

//android room version

ext.room_version = ‘2.3.0’

}

// room

implementation “androidx.room:room-runtime:$room_version”

kapt “androidx.room:room-compiler:$room_version”

// optional - room kotlin 扩展

implementation “androidx.room:room-ktx:$room_version”

二、Room使用指南

=============================================================================

Room使用


通过创建一个简单的学生数据库表,来熟悉Room的基本使用。

  1. 创建一个关于学生的Entity,即创建一张学生表SimpleStudentEntity。

Entity标签用于将SimpleStudent类与Room中的数据表对应起来。tableName属性可以为数据表设置表名,若不设置,则表名与类名相同。

PrimaryKey标签用于指定该字段作为表的主键。 autoGenerate = true Set to true to let SQLite generate the unique id.(设置为 true 让 SQLite 生成唯一的 id。)

ColumnInfo标签可用于设置该字段存储在数据库表中的名字,并指定字段的类型。

同时为了,其他地方对于表明以及字段相关的引用,我们这里声明为顶层常量(java 的静态常量),方便引用。

/**

  • 表名字相关,统一定义.

*/

const val SIMPLE_STUDENT_TABLE_NAME = “simple_student”</

  • 25
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值