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

发布于:2025-05-08 ⋅ 阅读:(22) ⋅ 点赞:(0)

一、简介

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<


网站公告

今日签到

点亮在社区的每一天
去签到