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

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

  • 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

相关文章:

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

ObjectBox其核心特点ObjectBox与 SQLite 和 Realm 的对比Android集成ObjectBox创建ObjectBox实体对象创建ObjectBox操作管理类OBManager在Application初始化ObjectBox插入或更新数据查询数据统计数据分页数据查询删除数据总结今天分享一套Android另一个数据库ObjectBox。Object…...

【HarmonyOS Next】地图使用详解(一)

背景 这系列文章主要讲解鸿蒙地图的使用,当前可以免费使用,并提供了丰富的SDK给开发者去自定义控件开发。目前可以实现个性化显示地图、位置搜索和路径规划等功能,轻松完成地图构建工作。需要注意的是,现在测试只能使用实体手机去…...

seacmsv9注入管理员账号密码+orderby+limi

1:mysql默认存储引擎innoDB携带的表 1,mysql.innodb_table_stats 2,mysql.innodb_index_stats SELECT table_name FROM mysql.innodb_table_stats WHERE database_name DATABASE(); 2: 关键字做处理 HEX编码:0x696E666F726D6174696F6E5F7…...

C#与AI的交互(以DeepSeek为例)

C#与ai的交互 与AI的交互使用的Http请求的方式,通过发送请求,服务器响应ai生成的文本 下面是完整的代码,我这里使用的是Ollama本地部署的deepseek,在联网调用api时,则url会有不同 public class OllamaRequester {[Se…...

面试八股文--数据库基础知识总结(2) MySQL

本文介绍关于MySQL的相关面试知识 一、关系型数据库 1、定义 关系型数据库(Relational Database)是一种基于关系模型的数据库管理系统(DBMS),它将数据存储在表格(表)中,并通过表格…...

Failed to start The PHP FastCGI Process Manager.

报错如下: Job for php-fpm.service failed because the control process exited with error code. See "systemctl status php-fpm.service" and "journalctl -xe" for details. 2月 25 21:49:00 nginx systemd[1]: Starting The PHP FastC…...

软件供应链安全工具链研究系列——RASP自适应威胁免疫平台(上篇)

1.1 基本能力 RASP是一种安全防护技术,运行在程序执行期间,使程序能够自我监控和识别有害的输入和行为。也就是说一个程序如果注入或者引入了RASP技术,那么RASP就和这个程序融为一体,使应用程序具备了自我防护的能力,…...

Spring Boot集成MyBatis访问MySQL:从项目搭建到基础数据库查询(基础入门)

Spring Boot集成MyBatis访问MySQL 一、引言 在当今企业级应用开发中,Spring Boot、MyBatis与MySQL的组合凭借其高效性和灵活性,成为构建数据驱动型应用的首选方案。本文将带你从零开始搭建项目,掌握Spring Boot集成MyBatis的基础入门内容。…...

一周学会Flask3 Python Web开发-Jinja2模板继承和include标签使用

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 不管是开发网站还是后台管理系统,我们页面里多多少少有公共的模块。比如博客网站,就有公共的头部&…...

【2025.2.25更新】wordpress免费AI插件,文章内容、图片自动生成、视频自动生成、网站AI客服、批量采集文章,内置deepseek联网满血版

wordpress免费AI插件,文章内容、文章图片、长尾关键词、视频自动生成、网站AI客服、批量采集文章,插件已接入腾讯云大模型知识引擎xDeepSeek,基于腾讯云大模型知识引擎xDeepSeek可联网满血版,插件可实现文章生成、长尾关键词生成、…...

待解决 leetcode71 简化路径 栈的应用

用多种ifelse很不好很复杂容易丢情况 class Solution { public:string simplifyPath(string path) {stack<char> st;string result;int n path.size();while(n > 1 && (path[n-1] / || path[n-1] .)){if(n > 2 && path[n-2] . && pat…...

数据安全_笔记系列09_人工智能(AI)与机器学习(ML)在数据安全中的深度应用

数据安全_笔记系列09_人工智能&#xff08;AI&#xff09;与机器学习&#xff08;ML&#xff09;在数据安全中的深度应用 人工智能与机器学习技术通过自动化、智能化的数据分析&#xff0c;显著提升了数据分类、威胁检测的精度与效率&#xff0c;尤其在处理非结构化数据、复杂…...

RocketMQ 可观测性最佳实践

RocketMQ 概述 Apache RocketMQ 是一个开源的分布式消息传递和流处理平台&#xff0c;由阿里巴巴团队最初开发并捐赠给 Apache 软件基金会。它主要用于处理大规模消息的发送和接收&#xff0c;支持高吞吐量、可扩展性强且具有高可用性的消息服务。 RocketMQ 的优势有以下几点…...

P9420 [蓝桥杯 2023 国 B] 子 2023

P9420 [蓝桥杯 2023 国 B] 子 2023 题目 分析代码 题目 分析 刚拿到这道题&#xff0c;我大脑简单算了一下&#xff0c;这个值太大了&#xff0c;直观感觉就很难&#xff01;&#xff01; 但是&#xff0c;你仔仔细细的一看&#xff0c;先从最简单的第一步入手&#xff0c;再…...

OpenAI开放Deep Research权限,AI智能体大战升级,DeepSeek与Claude迎来新对决

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

学习笔记04——JMM内存模型

一、Java内存模型&#xff08;JMM&#xff09;是什么&#xff1f; Java内存模型&#xff08;Java Memory Model, JMM&#xff09;是Java多线程编程中共享内存的访问规则&#xff0c;定义了线程如何与主内存&#xff08;Main Memory&#xff09;和工作内存&#xff08;Work Mem…...

将VsCode变得顺手好用(1

目录 设置中文 配置调试功能 提效和增强相关插件 主题和图标相关插件 创建js文件 设置中文 打开【拓展】 输入【Chinese】 下载完成后重启Vs即可变为中文 配置调试功能 在随便一个位置新建一个文件夹&#xff0c;用于放置调试文件以及你未来写的代码&#xff0c;随便命名但…...

Fisher信息矩阵(Fisher Information Matrix,简称FIM)

Fisher信息矩阵简介 Fisher信息矩阵&#xff08;Fisher Information Matrix&#xff0c;简称FIM&#xff09;是统计学和信息理论中的一个重要概念&#xff0c;广泛应用于参数估计、统计推断和机器学习领域。它以统计学家罗纳德费希尔&#xff08;Ronald Fisher&#xff09;的名…...

Vue2+Three.js加载并展示一个三维模型(提供Gitee源码)

目录 一、案例截图 二、安装Three.js 三、代码实现 四、Gitee源码 一、案例截图 二、安装Three.js npm install three 三、代码实现 模型资源我是放在public文件夹下面的&#xff1a; 完整代码&#xff1a; <template><div><div ref"container&qu…...

Linux红帽:RHCSA认证知识讲解(三)Linux基础指令与Vim编辑器的使用

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;三&#xff09;Linux基础指令与Vim编辑器的使用 前言一、Linux基础指令二、Linux 文件系统层次结构概念三、通过路径指定文件四、使用命令行工具管理文件五、Vim 的安装方式六、Vim 的操作模式七、红帽建议掌握的 Vim 键和命…...

步进电机电流闭环控制软件:自动计算电流环kp和ki,高频率PWM,支持modbus通信,位置与...

步进电机电流闭环控制软件&#xff1a; 电流闭环&#xff0c;电流环kp和ki自动计算&#xff1b; PWM频率&#xff0c;电流环计算频率&#xff0c;16kHz&#xff1b; modbus通信&#xff1b; 位置模式和速度模式。&#xff08;面向现场工程师与维护人员&#xff09;0 前言 这份文…...

Embedding微调避坑指南:ms-swift里5种Loss函数到底怎么选?(附数据集格式样例)

Embedding微调实战&#xff1a;ms-swift框架中5种损失函数的深度选择指南 当你在ms-swift框架中进行Embedding模型微调时&#xff0c;损失函数的选择往往决定了整个项目的成败。面对InfoNCE、余弦相似度、对比学习等不同选项&#xff0c;很多开发者都会陷入"选择困难症&qu…...

暗黑破坏神2终极优化指南:如何用d2dx在宽屏显示器上体验60帧流畅游戏

暗黑破坏神2终极优化指南&#xff1a;如何用d2dx在宽屏显示器上体验60帧流畅游戏 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx …...

避坑指南:Ascend 310芯片+CANN工具包在麒麟系统下的5个常见安装错误

Ascend 310芯片CANN工具包在麒麟系统下的5个典型安装陷阱与解决方案 当Ascend 310芯片遇上麒麟操作系统&#xff0c;这种国产硬件的黄金组合本应带来无缝的开发体验&#xff0c;但实际部署中总有几个"暗礁"让开发者措手不及。不同于常规安装教程&#xff0c;本文将直…...

别再为分享文件发愁了!Android开发者的FileProvider保姆级配置指南(附避坑清单)

Android文件共享实战&#xff1a;FileProvider全流程配置与深度避坑指南 每次看到团队成员在Slack群里抱怨"为什么我的分享功能又崩溃了&#xff1f;"&#xff0c;我就知道又有开发者掉进了Android文件共享的陷阱。作为从Android 4.4时代就开始与FileProvider斗智斗勇…...

ROFL播放器:英雄联盟回放文件的终极管理工具

ROFL播放器&#xff1a;英雄联盟回放文件的终极管理工具 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在为英雄联盟回放文件无法播放…...

WeChatMsg完整教程:微信聊天记录永久保存与深度分析终极指南

WeChatMsg完整教程&#xff1a;微信聊天记录永久保存与深度分析终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...

如何快速解决Windows热键冲突问题:Hotkey Detective完整使用指南

如何快速解决Windows热键冲突问题&#xff1a;Hotkey Detective完整使用指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...

用公司组织架构模式读懂AI大模型、OpenClaw、Claude Code、Agent、Prompt、MCP、Skill、Token、多智能体、具身智能到底啥关系?

公司最小的信息颗粒是 Token&#xff1b;老板 AI大模型 通过 Prompt 听汇报做决策&#xff1b;公司规定所有业务系统必须按 MCP 标准接入&#xff1b;HR 给员工发 Skill 手册&#xff1b;单个 Agent 员工领命干活&#xff1b;遇到大项目就组个 多智能体 团队&#xff1b;OpenCl…...

一键部署后:BERT文本分割模型健康检查与监控

一键部署后&#xff1a;BERT文本分割模型健康检查与监控 部署一个BERT文本分割模型&#xff0c;看着服务成功启动&#xff0c;这只是万里长征的第一步。接下来&#xff0c;你可能会有这样的疑问&#xff1a;我的服务真的在稳定运行吗&#xff1f;它处理请求的速度够快吗&#…...