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

打印 上一主题 下一主题

主题 1005|帖子 1005|积分 3015

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添加引用地址
  

  1. storageRealm = "1.0.0"
  2. eyinfo-storage-realm = {
  3.     module = "io.github.eyinfo:storage-realm", version.ref = "storageRealm" }
复制代码
  接下来需要在对应模块工程的build.gradle配置了,做以下几项修改
  1. //在头部添加realm-android插件定义
  2. apply plugin: "realm-android"
  3. android {
  4.    
  5. //常规配置
  6. }
  7. //启用realm同步配置
  8. realm {
  9.    
  10.     syncEnabled = true
  11. }
  12. dependencies {
  13.    
  14.     //这里即可将sdk导入,然后同步一下工程即可
  15.     api libs.storage
  16. }
复制代码
  当然还需要在项目根目录的build.gradle中添加realm的classpath插件引用
  1. #其中libs.versions.toml配置
  2. realmGradlePlugin = "10.19.0"
  3. realm-gradle-plugin = {
  4.     module = "io.realm:realm-gradle-plugin", version.ref = "realmGradlePlugin" }
  5. #然后再在gradle添加配置,这里sync一下进行导入
  6. buildscript {
  7.    
  8.     repositories {
  9.    
  10.         mavenCentral()
  11.     }
  12.     dependencies {
  13.    
  14.         classpath libs.realm.gradle.plugin
  15.     }
  16. }
复制代码
  最后在application设置Realm初始化配置,即可实现快速集成
参考地址:
  
      
  • 打开和关闭Realm配置:https://www.mongodb.com/zh-cn/docs/atlas/device-sdks/sdk/java/realm-files/open-and-close-a-realm/
  1. public class MyApplication extends Application {
  2.    
  3.     @Override
  4.     public void onCreate() {
  5.    
  6.         super.onCreate();
  7.         ConfigurationRealm.getInstance().init(
  8.                 getApplicationContext(), //需要传入应用上下文
  9.                 "storage.realm", //根据需要设置数据库名称
  10.                 new UserModules() //导入Realm数据库自定义模型,参考下面说明
  11.         );
  12.     }
  13. }
复制代码
创建Realm数据模型

官方模型数据文档:https://www.mongodb.com/zh-cn/docs/atlas/device-sdks/sdk/java/model-data/
   下面以用户表数据为例,演示如何定义一个Realm数据模型
这里以继承RealmObject为例,还需要添加@RealmClass注解
  1. @EqualsAndHashCode(callSuper = true)
  2. @Data
  3. @NoArgsConstructor
  4. @AllArgsConstructor
  5. @RealmClass
  6. public class User extends RealmObject<
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表