当前位置: 首页 > news >正文

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

  • 本地存储storage集成
  • 创建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初始化配置,即可实现快速集成
参考地址:

  • 打开和关闭Realm配置:https://www.mongodb.com/zh-cn/docs/atlas/device-sdks/sdk/java/realm-files/open-and-close-a-realm/
public class MyApplication extends Application {@Overridepublic 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<

http://www.mrgr.cn/news/92308.html

相关文章:

  • 外发抄板SCH与PCB检查系列
  • 禾迈电力电子嵌入式面经和参考答案
  • 【论文学习】DeepSeek-R1 总结
  • Deepseek 实战全攻略,领航科技应用的深度探索之旅
  • C++ 八股(整理记录)
  • JavaScript 简单类型与复杂类型
  • TestNG-Java自动化测试快速入门
  • Linux时间日期类指令
  • Linux下安装Nginx服务及systemctl方式管理nginx详情
  • Linux系统离线部署MySQL详细教程(带每步骤图文教程)
  • Java数据结构第十四期:走进二叉树的奇妙世界(三)
  • 音乐游戏Dance Dance Revolution(DDR)模拟器
  • SQL之order by盲注
  • 软件工程----瀑布模型
  • Java并发编程面试题:并发工具类(10题)
  • 递归(典型算法思想)—— OJ例题算法解析思路
  • 跨平台文本实时传输
  • CaffeineCache自定义缓存时间
  • 娛閑放鬆篇2
  • 在spring项目中,引入mybatis