Android 数据持久化之 Room 数据库存储

一、简介

Room 是 Google 推出的 Android 持久层框架,建立在 SQLite 之上,提供了一个抽象层,简化了数据库操作。它通过注解和编译时检查来确保数据操作的正确性。

Room 主要由以下三个组件组成:

  • Entity(实体):定义封装实际数据的实体类,每个实体类对应数据库中的一个表,每个字段对应表中的一个列。
  • DAO(数据访问对象):定义了用于操作数据库的方法,Room 会自动生成这些方法的实现。逻辑层无需和底层数据库打交道,直接和 Dao 层交互。
  • Database(数据库):作为数据库的容器,提供对数据库的访问点。定义了数据库的关键信息(版本号、包含的实体类),并提供 Dao 层的访问实例。

二、使用方法

1、添加依赖库

在项目的 app/build.gradle 文件中添加 Room 的依赖。

	plugins {
   
	    alias(libs.plugins.android.application)
	    alias(libs.plugins.kotlin.android)
	    alias(libs.plugins.kotlin.compose)
	    // kotlin-kapt 插件
	    kotlin("kapt")
	}
	......
	
	dependencies {
   
		......
		// Room 数据库
	    implementation("androidx.room:room-runtime:2.7.1")
	    kapt("androidx.room:room-compiler:2.7.1")
	    implementation("androidx.room:room-ktx:2.7.1")
	}

2、定义 Entity

定义一个实体类,它将映射为数据库中的一个表。
若定义的字段有唯一性,可作为主键添加注解 @PrimaryKey,若所有字段没有唯一性,可另外添加 id 字段作为主键,并设置为自增长。

	package com.example.helloworld.room
	
	import androidx.room.Entity
	import androidx.room.PrimaryKey

	@Entity(tableName = "users")
	data class UserEntity(
	    val name: String,
	    val gender: String,
	    val age: Int
	) {
   
	    @PrimaryKey(autoGenerate = true)
	    val id: Long = 0
	}

3、定义 Dao

定义一个接口,声明对数据库的操作方法,有增、删、改、查 4 种方法,Room 提供了 @Insert、@Delete、@Update、@Query 4 种相应的注解。

	package com.example.helloworld.room
	
	import androidx.room.Dao
	import androidx.room.Delete
	import androidx.room.Insert
	import androidx.room.Query
	import androidx.room.Update
	
	@Dao
	interface UserDao {
   
	
	    @Insert
	    fun insertUser(user: UserEntity)
	
	    @Insert
	    fun insertUsers(vararg users: UserEntity)
	
	    @Delete
	    fun deleteUser(user: UserEntity)
	
	    @Update
	    fun updateUser(user: UserEntity)
	
	    @Query("select * from use
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值