Jetpack 之 Room 使用初体验

Jetpack 之 Room 使用初体验

写在前面

本文开发环境为AndroidStudio 4.0 ,开发语言为kotlin,调试设备为OPPO Reno。

资料来自于一下链接。

Jetpack简介

其实早在2018年,Google就在I/O大会上发布了一系列的辅助工具包合集,称为Jetpack,主要包含四个方面。

  • Architecture
  • Foundation
  • Behavior
  • UI
    Jetpack模块图

根据图片可以看到几乎是涵盖Android开发的方方面面。我们只要学会使用其中的几个组件就能开发出架构很清晰的应用。在Android的官方demo中也是大量采用相关组件去做开发。关于这里面各模块的简单介绍可以参考这个点击前往。很重要的一点是Jetpack和Kotlin相结合真的是非常令人舒适。

Room初体验

前面简单介绍一下Jetpack,但本次重点还是简单说一下Room的使用体验,其实这玩意儿,Google 2017年就推出了。但是好像很少人用,反正我是2019年才知道,2020年才自己使用。用起来就一个字,爽!

简介

Room是Google 针对Android数据库操作封装的一个组件,Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。这个组件将数据库的建库建表升级,增删查改的代码全部都帮你在编译时去实现了。而你要做的就是写你的数据类,数据操作类Dao,数据库类Database。下面我们就看一个简单的示例,看看Room的魅力。

示例

下面你会觉得非常快,因为它用起来就是这么快。

添加依赖

在AndroidStudio(不会还有人用Eclipse吧 😄)中的build.gradle中添加Gradle依赖。通常情况下这个build.gradle文件指的是module下的那个文件。但是也有些项目配置的主module在project的build.gradle里面,所以看自己的用法。

apply plugin: 'kotlin-kapt'
dependencies {
    implementation 'androidx.room:room-runtime:2.2.5'
    implementation "androidx.room:room-ktx:2.2.5"
    //这个是为了编译时根据注解生成代码
    kapt 'androidx.room:room-compiler:2.2.5'    
}

下面就可以愉快的,使用Room了。

数据类(表)的创建

如果我们设计一个需要使用到数据库的应用,首先我们肯定也是先设计表。来看一下用Room设计表。

@Entity(tableName = "people")
data class People(
    @PrimaryKey @ColumnInfo(name = "name") val name: String,
    @ColumnInfo(name = "age", defaultValue = "18") val age: Int, @ColumnInfo val address: String?
)

没错,我们的表建完了,并且我们的数据类也建好了,当列名和属性名一样是,甚至可以省略掉name。

数据库操作类(DatabaseWrapper)的创建
package com.wanghang.mypeople

import androidx.lifecycle.LiveData
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query

@Dao
interface PeopleDao {
   
    @Insert(onConflict = OnConflictStrategy.IGNORE, entity = People::class)
    fun insertPeople(people: People)

    @Query("SELECT * FROM people WHERE name= :name LIMIT 1")
    fun getPeople(name: String): People

    @Query("SELECT age FROM people WHERE name= :name LIMIT 1")
    fun getPeopleAge(name: String)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值