- 本地存储storage集成
- 创建Realm数据模型
- 插入和更新数据
- 模型数据查询
- 统计数据
- 分页查询处理
- 表数据删除操作
- 总结
Realm 是一款专为移动端和嵌入式场景设计的高性能、跨平台的 对象数据库(NoSQL),由 MongoDB 团队维护。它的核心思想是将数据模型直接映射到对象(如 Java/Kotlin、Swift 等语言中的类),开发者无需编写复杂的 SQL 语句或 ORM 代码即可高效操作数据。
其核心特点:
- 对象导向的数据模型
- 数据直接以原生对象形式存储和操作,无需手动解析或序列化。
- 支持嵌套对象、集合(List/RealmList)和关系(一对一、一对多)。
- 跨平台与多语言支持
- 支持 Android、iOS、Flutter、React Native、Node.js、Java、Swift、Kotlin 等。
- 数据文件格式统一,不同平台可共享同一 Realm 数据库文件。
- 高性能
- 基于 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<