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

甘肃省住房和建设厅网站深圳网站设计公司

甘肃省住房和建设厅网站,深圳网站设计公司,海口网约车公司哪家好,网站建设功能选择表ObjectBox其核心特点ObjectBox与 SQLite 和 Realm 的对比Android集成ObjectBox创建ObjectBox实体对象创建ObjectBox操作管理类OBManager在Application初始化ObjectBox插入或更新数据查询数据统计数据分页数据查询删除数据总结今天分享一套Android另一个数据库ObjectBox。Object…

  • ObjectBox其核心特点
  • ObjectBox与 SQLite 和 Realm 的对比
  • Android集成ObjectBox
  • 创建ObjectBox实体对象
  • 创建ObjectBox操作管理类OBManager
  • 在Application初始化ObjectBox
  • 插入或更新数据
  • 查询数据
  • 统计数据
  • 分页数据查询
  • 删除数据
  • 总结

今天分享一套Android另一个数据库ObjectBox。ObjectBox 是一款专为移动端和物联网(IoT)设备设计的高性能 NoSQL 数据库,专注于极致的速度和轻量级资源占用。它由 GreenRobot 团队开发(同团队开发了 GreenDAO 和 EventBus),适用于 Android、iOS、Linux、Windows 等平台,尤其适合需要高效本地数据存储的场景。
在这里插入图片描述

ObjectBox其核心特点

  • 非常高的性能
    • 基于原生 C 核心库,读写速度远超 SQLite 和其他 ORM 框架。
    • 支持 零拷贝序列化,减少内存分配,提升数据处理效率。
  • 简单易用
    • 无 SQL 语法:通过链式 API 或 Kotlin/Java 方法直接操作对象,避免 SQL 注入风险。
    • 自动生成代码:通过注解生成数据模型和查询类(如 User_),减少手写代码。
  • 经量级
    • 核心库体积小(约 1MB),适合移动端和嵌入式设备。
    • 低内存和 CPU 占用,延长设备续航时间。
  • 实时数据同步(ObjectBox sync)
    • 提供端到端数据同步功能,支持离线优先的分布式应用(需商业授权),在一般项目应用中这项是用不到的,使用社区版即可。

ObjectBox与 SQLite 和 Realm 的对比

特性ObjectBoxSQLiteRealm
性能⚡️ 最快中等
API 易用性✅ 链式调用,无 SQL❌ 需写 SQL✅ 对象化操作
跨平台支持Android, iOS, 桌面通用Android, iOS
同步功能✅ (商业版)✅ (商业版)
开源协议Apache 2.0公有领域Apache 2.0

Android集成ObjectBox

本人觉得直接接官网API仍有点麻烦,因此单独封装了SDK以便后面统一使用;

  • 官方文档:https://docs.objectbox.io/
  • GitHub 仓库:https://github.com/objectbox/objectbox-java

首先需要在libs.versions.toml添加包引用地址(gradle新版本才会有,老项目直接在dependencies配置即可)

objectboxGradlePlugin = "4.1.0"objectbox-gradle-plugin = { module = "io.objectbox:objectbox-gradle-plugin", version.ref = "objectboxGradlePlugin" }

在项目根目录的build.gradle配置插件的classpath

buildscript {repositories {mavenCentral()}dependencies {classpath(libs.objectbox.gradle.plugin)}
}

然后在项目模块的build.gradle配置以下属性(配置完后记得需要同步),当然在这之前需要配置objectbox sdk引用,这一步完成之后包的objectbox就算集成好了;

storageObjectbox = "1.0.0"eyinfo-storage-objectbox = { module = "io.github.eyinfo:storage-objectbox", version.ref = "storageObjectbox" }
plugins {alias(libs.plugins.android.application)
}//导入插件
apply plugin: 'io.objectbox'android {//常规配置项
}dependencies {//引用objectbox sdkapi libs.eyinfo.storage.objectbox
}

创建ObjectBox实体对象

  • 对象必须要设置@Entity注解
  • @Id注解:如果assignable=true表示主键值需要手动传入;如果assignable=false表示主键值为内部自增行为,无需外部传入;
@Entity
public class UserOB {@Id(assignable = true)private Long id;private int age;private String name;//生成getter、setter属性
}

这一步配置完后同步工程才能生成MyObjectBox对象,如果未自动生成MyObjectBox可能会导致后续无法使用ObjectBox数据库;

在这里插入图片描述

创建ObjectBox操作管理类OBManager

这里继承ObjectBoxAbstractManager实现与配置对应超类方法即可,方便使用整个模块中配置一次即可;

public class OBManager extends ObjectBoxAbstractManager {private static volatile OBManager instance;public static OBManager getInstance() {if (instance == null) {synchronized (OBManager.class) {if (instance == null) {instance = new OBManager();}}}return instance
http://www.dtcms.com/wzjs/227215.html

相关文章:

  • 中国知名网站排行榜重庆关键词排名首页
  • 合肥做网站费用口碑seo推广公司
  • 浙江网站建设网络推广的基本方法
  • 网页网站设计公司排行榜百度旗下所有app列表
  • python做网站服务器西安自动seo
  • 新余市建设厅网站seo常用分析的专业工具
  • 桂林哪里做网站个人网站怎么建立
  • 学校做网站的目的资源优化排名网站
  • 免费行情软件在线网站java培训学费多少钱
  • 网络运营商远端无响应北京seo优化推广
  • 怎么做bt爬虫网站2023b站推广大全
  • 做彩票网站被网络宣传的方法渠道
  • wordpress seo by yoast网站内部链接优化方法
  • 漳州做网站含博大网sem竞价培训
  • 怎样自学做网站需要多少钱最好用的系统优化软件
  • 广州公司做网站查域名ip地址查询
  • 花店网站建设方案全球疫情最新数据统计
  • 农产品网站开发备案域名交易平台
  • 旅游网站建设的费用明细哪里有seo排名优化
  • 镇江有几个区网站seo诊断
  • 网站建设你懂的中山网站建设公司
  • 晋中路桥建设集团网站小区推广最有效的方式
  • 哈尔滨网站搜索优化公司免费b2b网站有哪些
  • 泉州手机模板建站程序员培训机构哪家好
  • 腾讯云服务器可以做网站免费手游推广平台
  • 长沙工程建设管理中心网站株洲seo快速排名
  • 有了域名怎么做自己得网站成都官网seo费用
  • 做百度ssp的网站开发人杭州关键词优化测试
  • 网站顶部设计推广公司app主要做什么
  • 邢台 网站建设网络营销策划内容