Android Realm数据库使用与集成指南

Realm 是一款专为移动端和嵌入式场景设计的高性能、跨平台的 对象数据库(NoSQL),由 MongoDB 团队维护。它的核心思想是将数据模型直接映射到对象(如 Java/Kotlin、Swift 等语言中的类),开发者无需编写复杂的 SQL 语句或 ORM 代码即可高效操作数据。
其核心特点:

  1. 对象导向的数据模型
    • 数据直接以原生对象形式存储和操作,无需手动解析或序列化。
    • 支持嵌套对象、集合(List/RealmList)和关系(一对一、一对多)。
  2. 跨平台与多语言支持
    • 支持 Android、iOS、Flutter、React Native、Node.js、Java、Swift、Kotlin 等。
    • 数据文件格式统一,不同平台可共享同一 Realm 数据库文件。
  3. 高性能
    • 基于 C++ 核心引擎,数据直接映射到内存,读写速度接近原生内存操作。
    • 比 SQLite 快 2~10 倍(尤其在复杂查询和大数据集场景下)。

好了费话不多说,下面我们看看在Android中怎么快速、高效的使用Realm;

本地存储storage集成

该库是基于Realm封装的一个简单易用的本地存储库,官方文档集成Realm稍有点麻烦,为了方便使用兼容等问题,因此封装了storage;当前storage sdk已经发布到maven center仓库,可以在项目中直接使用;

在这里插入图片描述

Storage SDK集成,AS最新版本/gradle8.7版本需要在工程的libs.versions.toml添加引用地址

在这里插入图片描述

storageRealm = "1.0.0"

eyinfo-storage-realm = {
    module = "io.github.eyinfo:storage-realm", version.ref = "storageRealm" }

接下来需要在对应模块工程的build.gradle配置了,做以下几项修改

//在头部添加realm-android插件定义
apply plugin: "realm-android"

android {
   
 //常规配置
}

//启用realm同步配置
realm {
   
    syncEnabled = true
}

dependencies {
   
    //这里即可将sdk导入,然后同步一下工程即可
    api libs.storage
}

当然还需要在项目根目录的build.gradle中添加realm的classpath插件引用

#其中libs.versions.toml配置
realmGradlePlugin = "10.19.0"

realm-gradle-plugin = {
    module = "io.realm:realm-gradle-plugin", version.ref = "realmGradlePlugin" }

#然后再在gradle添加配置,这里sync一下进行导入
buildscript {
   
    repositories {
   
        mavenCentral()
    }
    dependencies {
   
        classpath libs.realm.gradle.plugin
    }
}

最后在application设置Realm初始化配置,即可实现快速集成
参考地址:

public class MyApplication extends Application {
   
    @Override
    public void onCreate() {
   
        super.onCreate();
        ConfigurationRealm.getInstance().init(
                getApplicationContext(), //需要传入应用上下文
                "storage.realm", //根据需要设置数据库名称
                new UserModules() //导入Realm数据库自定义模型,参考下面说明
        );
    }
}

创建Realm数据模型

官方模型数据文档:https://www.mongodb.com/zh-cn/docs/atlas/device-sdks/sdk/java/model-data/

下面以用户表数据为例,演示如何定义一个Realm数据模型
这里以继承RealmObject为例,还需要添加@RealmClass注解

@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@RealmClass
public class User extends RealmObject<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙漠绿州

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值