Object-Box

ObjectBox是一款高效、轻量级的NoSQL数据库,占用内存小,提供面向对象的API,无需SQL,支持多平台,具备反应性数据观察和自动对象模式迁移。其简单的工作流程包括添加依赖、创建实体、构建BoxStore和执行查询。通过在Android应用中集成,开发者可以实现快速的数据操作和查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一款非关系型数据库

优势

ObjectBox占用内存1-1.5mb

insert,delete,update,load,access性能突出

  • 超快速:号称胜过测试过的所有嵌入式数据库
  • 面向对象的 API: 没有 rows、columns 和 SQL,完全从0开始的对象(没有ORM,没有SQLite)
  • 反应性:对数据变化的反应简单而强大,使用ObjectBox中的反应数据观察器或与RxJava集成。
  • 多平台:已经支持安卓和java,ios和MacOs正在集成
  • 简单的线程:ObjectBox返回的对象可以在所以线程中运行
  • 没有手动模式迁移:ObjectBox负责添加,删除和重命名属性的新对象版本,意味着数据库的升级不再需要我们自己管理版本号,ObjectBox内部会自动帮我们管理

ObjectBox基本(大致流程)

        1. 添加依赖

        2.先创建含注解 @Entity 的实体,并添加主键注解 @Id 。

        3.build生成MyObjectBox

        4.初始化MyObject构建BoxStore

        5.获取BoxStore开启查询

添加依赖

app build.gradle

debugImplementation "io.objectbox:objectbox-android-objectbrowser:$objectboxVersion"
releaseImplementation "io.objectbox:objectbox-android:$objectboxVersion"
apply plugin: 'io.objectbox' 必须添加

Project build.gradle

classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"

创建实例


 

@Entity声明这是一个实例,每一个实例都需要有@Id来表明主键,id为long型,可以自己赋值,也可以让objectbox自己赋值

实例创建完成之后,切记要给实例创建get和set方法

然后make project 会自动生成MyObjectBox,用于构建BoxStore;

新建一个application,初始化boxstore,使用ObjectBox的入口,管理Boxs

Box 持久化和查询实体,每一个实体类都会有一个box

初始化

BoxStore boxStore = MyObjectBox.builder().androidContext(this).build();

Box<GalleryCatalog> galleryBox = boxStore.boxFor(GalleryCatalog.class);

查询

List<GalleryCatalog> galleryCatalogs;
galleryCatalogs = DataManager.getInstance().getGalleryCatalogBox().query().build().find();
galleries = galleryBox.query().equal(Gallery_.photo, true).build().find();

### 关于 CSS 属性 `object-cover` 的使用方法及示例 在 CSS 中,并不存在一个独立的属性名为 `object-cover`。实际上,`cover` 是 `object-fit` 属性的一个值[^4]。通过设置 `object-fit: cover;`,可以实现替换元素(如 `<img>`、`<video>` 等)的内容保持宽高比的同时覆盖整个容器,部分内容可能会被裁剪以填满容器。 以下是 `object-fit: cover;` 的详细说明和示例代码: #### 1. 使用场景 当需要确保替换元素(如图片或视频)完全填充其容器框时,同时保持宽高比并避免变形,可以使用 `object-fit: cover;`。此值特别适用于响应式设计,能够优雅地处理不同屏幕尺寸下的内容显示问题[^4]。 #### 2. 示例代码 以下是一个完整的示例,展示如何使用 `object-fit: cover;`: ```html <div class="image-box"> <img src="example.jpg" alt="示例图"> </div> <style> .image-box { width: 300px; height: 200px; overflow: hidden; border: 1px solid #ccc; } .image-box img { width: 100%; height: 100%; object-fit: cover; /* 核心属性 */ } </style> ``` 在这个例子中,`.image-box` 定义了一个固定大小的容器框(300px 宽 × 200px 高)。内部的 `<img>` 元素设置了 `object-fit: cover;`,这意味着图片将按比例缩放以覆盖整个容器框,超出部分会被裁剪[^3]。 #### 3. 效果描述 - 图片会根据容器的宽高比进行缩放。 - 如果图片的原始宽高比与容器不同,多余的部分会被裁剪掉。 - 图片始终保持其原始宽高比,不会出现拉伸或压缩的情况[^4]。 #### 4. 注意事项 - 确保容器有明确的宽度和高度定义,否则 `object-fit` 的效果可能无法正常显示。 - 如果希望内容适应容器但不裁剪,可以使用 `object-fit: contain;` 替代[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值