HarmonyOSNext 端云一体化(4)

简介: 本文是《HarmonyOSNext 端云一体化》系列第4篇,主要讲解数据库查询条件操作。文中详细介绍了查询条件中的“谓词”概念,列举了如`equalTo`、`greaterThan`、`orderByAsc`等常用谓词,并通过示例代码展示其用法,包括基本查询与复杂组合查询。读者可灵活运用这些谓词实现多样化数据筛选。文末还提供了进一步交流的方式,适合开发者深入了解鸿蒙数据库操作。

HarmonyOSNext 端云一体化(4)

在上一章节我们讲了数据库数据表的一些基本操作。如query、upsert、delete和calculateQuery。这一章节主要来讲解各种查询条件操作。如 查询班级年龄大于30的同学。查询班级内男、女的人数等等。

查询条件解释

谓词,用来代替或者展示其客体性质、特征或者客体之间关系的词项

这些查询条件在端云一体中解释中叫做谓词。云数据库中提供丰富的谓词查询来构建查询条件。根据谓词查询方法构造自己的

DatabaseQuery对象。

查询条件谓词一览

关键字 说明
equalTo 表示等于的条件判断,用于查询中筛选出与指定值相等的数据
notEqualTo 表示不等于的条件判断,筛选出与指定值不相等的数据
beginsWith 表示以某个值开头,用于查询开头匹配特定字符串的数据
endsWith 表示以某个值结尾,用于查询结尾匹配特定字符串的数据
contains 表示包含某个值,用于查询包含特定字符串的数据
greaterThan 表示大于,用于数值类型数据的比较,筛选出大于指定值的数据
greaterThanOrEqualTo 表示大于或等于,筛选出大于或等于指定值的数据
lessThan 表示小于,用于数值类型数据的比较,筛选出小于指定值的数据
lessThanOrEqualTo 表示小于或等于,筛选出小于或等于指定值的数据
in 用于判断某个值是否在指定的集合内,常用于查询符合多个值中某一个的数据
isNull 用于判断某个字段是否为空值
isNotNull 用于判断某个字段是否不为空值
orderByAsc 按升序排列,用于对查询结果按照指定字段进行从小到大的排序
orderByDesc 按降序排列,用于对查询结果按照指定字段进行从大到小的排序
limit 限制查询结果返回的数量
beginGroup 开始一个逻辑分组,用于将多个条件组合在一起作为一个逻辑单元
endGroup 结束一个逻辑分组
or 逻辑或,用于连接多个条件,只要其中一个条件满足则整个逻辑表达式为真
and 逻辑与,用于连接多个条件,只有所有条件都满足时整个逻辑表达式才为真

谓词使用示例

equalTo 查询id为20的数据

this.condition.equalTo("id", 20)

notEqualTo 查询id不等于20的数据

this.condition.notEqualTo("id", 20)

beginsWith 查询name字段以b开头的数据

this.condition.beginsWith("name", "b")

endsWith 查询name字段以k结尾的数据

this.condition.endsWith("name", "k")

contains 查询name字段包含k的数据

this.condition.contains("name", "k")

greaterThan 查询price字段大于30的数据

this.condition.greaterThan("price", 30)

greaterThanOrEqualTo 查询price字段大于或者等于30的数据

this.condition.greaterThanOrEqualTo("price", 30)

lessThan 查询price字段小于30的数据

this.condition.lessThan("price", 30)

lessThanOrEqualTo 查询price字段小于或者等于30的数据

this.condition.lessThanOrEqualTo("price", 30)

in 查询name字段包含在["book","aaaa","bbbb"]的中数据

this.condition.in("name", ["book", "aaaa", "bbbb"])

isNull 查询name字段是否为null

this.condition.isNull("name")

isNotNull 查询name字段是否非null

this.condition.isNotNull("name")

orderByAsc 根据id,进行升序

this.condition.orderByAsc("id")

orderByDesc 根据id,进行降序

this.condition.orderByDesc("id")

limit 查询2条数据,从第1条开始

this.condition.limit(2, 1)

or 逻辑或,查询name=book 或者 price>30的数据

this.condition.equalTo("name", "book").or().greaterThan('price', 30)

and 逻辑与,查询name=book123 并且 price>30的数据

this.condition.equalTo("name", "book123").and().greaterThan('price', 30)

beginGroup 和 endGroup 表示一对逻辑分组

 // 条件1:   name=book并且price>30

  // 条件2:   id=20或者price>30

  // 需求: 查询 条件1 和 条件2 同时满足的数据
  this.condition
    .beginGroup()
    .equalTo('name', 30)
    .and()
    .greaterThan('price', 30)
    .endGroup()
    .and()
    .beginGroup()
    .equalTo('id', 20)
    .or()
    .greaterThan('price', 30)
    .endGroup();

加强

上面的谓词,也是根据实际语义搭配一起使用。比如:查询name=book的前2条数据

总结

本章主要介绍了HarmonyOSNext端云一体化中的数据库查询条件操作:

  1. 介绍了查询条件中的谓词概念,它用于展示或描述数据的性质、特征或关系

  2. 详细列举了常用的查询谓词,包括:

    • 比较类:equalTo、notEqualTo、greaterThan、lessThan等
    • 字符串匹配:beginsWith、endsWith、contains
    • 空值判断:isNull、isNotNull
    • 集合操作:in
    • 排序限制:orderByAsc、orderByDesc、limit
    • 逻辑组合:and、or、beginGroup、endGroup
  3. 通过具体示例展示了各种谓词的使用方法,包括基本查询和复杂的组合查询

  4. 说明了谓词可以根据实际需求灵活组合使用,以实现更复杂的查询功能


如果你兴趣想要了解更多的鸿蒙应用开发细节和最新资讯,欢迎在评论区留言或者私信或者看我个人信息,可以加入技术交流群。

目录
相关文章
|
8月前
|
存储 运维 负载均衡
HarmonyOS Next 端云一体化(1)
HarmonyOS Next端云一体化开发简介:借助Cloud Foundation Kit,开发者可便捷使用云函数、云数据库和云存储等服务,专注于业务逻辑。本文涵盖应用场景(如应用后端、计算密集型任务等)、资源介绍、项目创建流程(AGC平台与DevEco Studio配合)、云端环境操作及本地目录结构解析。建议优先使用DevEco Studio进行开发以提升体验,为深入学习打下基础。
344 6
HarmonyOS Next 端云一体化(1)
|
8月前
|
存储 前端开发 API
HarmonyOSNext 端云一体化(5)
本文介绍了 HarmonyOS Next 中客户端操作云存储的详细方法,涵盖云存储基础、环境准备及核心 API 使用。首先讲解了云存储的概念、免费配额与计费策略,接着说明如何在 AGC 平台开通云存储并初始化实例。核心功能包括文件上传(`uploadFile`)、云端文件列表查看(`list`)、元数据获取(`getMetadata`)、下载地址获取(`getDownloadURL`)、文件下载(`downloadFile`)和文件删除(`deleteFile`)。文中还强调了操作时需注意的事项,如文件路径限制和错误处理。通过学习,开发者可掌握云存储的基本操作,满足应用开发中的文件存储需求。
245 9
HarmonyOSNext 端云一体化(5)
|
8月前
|
前端开发 程序员 API
鸿蒙元服务实战-笑笑五子棋(1)
《笑笑五子棋》是基于鸿蒙系统开发的元服务应用,由深度开发者分享开源。名字源于开发者女儿“笑笑”,充满程序员的独特浪漫。应用采用 ArkTS API 12、Canvas 等技术,支持 AtomicServiceTabs 和卡片开发,已成功上架并获得基础激励。凭借活跃设备数达标,还登上鸿蒙负一屏休闲分类菜单,提升了用户活跃度。本文介绍了应用背景和技术细节,下篇将聚焦代码实现。适合对鸿蒙开发感兴趣的开发者学习交流。
164 10
鸿蒙元服务实战-笑笑五子棋(1)
|
8月前
|
存储 JSON 数据库
HarmonyOS Next 端云一体化(2)
本文介绍了HarmonyOS云数据库端云一体化中的数据库操作流程。首先创建名为“Study”的存储区,并在DevEco Studio中配置信息;接着定义对象类型,以“Book”为例,详细说明objectTypeName、fields、indexes和permissions的设置规则;然后通过JSON文件添加数据条目,配置cloudDBZoneName和objects字段;最后将本地数据库部署至AGC平台并刷新数据。全文涵盖存储区创建、对象类型定义、数据操作及云端部署等核心步骤,为端云协同开发奠定基础。
210 5
HarmonyOS Next 端云一体化(2)
|
10月前
|
人工智能 监控 安全
云端问道18期实践教学-AI 浪潮下的数据安全管理实践
本文主要介绍AI浪潮下的数据安全管理实践,主要分为背景介绍、Access Point、Bucket三个部分
332 54
|
8月前
|
API 开发者 Windows
uniapp 极速上手鸿蒙开发
uniapp 自版本 `4.28.2024092502` 起支持鸿蒙应用开发,现版本 `4.36.2024112817` 同时支持鸿蒙应用和元服务开发。本文介绍使用 HBuilderX 4.24+ 和 DevEco Studio 进行环境配置、项目创建及运行的详细步骤,涵盖从 AGC 平台新建项目、配置证书到最终运行项目的全流程,帮助开发者快速上手鸿蒙开发。注意:HBuilderX 4.31+ 构建的鸿蒙运行包不支持 x86_64 平台,需使用真机调试。
742 85
uniapp 极速上手鸿蒙开发
|
8月前
|
移动开发 JavaScript API
HarmonyOS Next 简单上手元服务开发
本文介绍了 HarmonyOS Next 中元服务的开发流程与关键特性。元服务是一种轻量级应用程序形态,支持免安装、秒开直达,适用于听音乐、打车等场景,大幅提升服务获取效率。文章详细讲解了元服务的开发旅程,包括在 AGC 平台上新建项目、修改名称与图标、新增卡片等内容,并提供了代码示例,如 AtomicServiceTabs 的 tab 切换和标题设置、AtomicServiceNavigation 的路由管理等。此外,还探讨了 AtomicServiceWeb 的使用方法,涵盖鸿蒙页面与 h5 页面的数据传递及方法调用。
618 20
HarmonyOS Next 简单上手元服务开发
|
8月前
|
设计模式 存储 JavaScript
HarmonyOS Next 浅谈 发布-订阅模式
本文浅谈 HarmonyOS Next 中的发布-订阅模式,通过 ArkTS 的 Emitter 对象实现事件的订阅、发布与管理。文章介绍了设计模式在现代开发中的重要性,特别是封装工具或游戏开发时的应用。具体实现中定义了 `on`(持续订阅)、`once`(单次订阅)、`off`(取消订阅)和 `emit`(发布事件)等方法,并通过 TypeScript 实现了一个自定义的 `MyEmitter` 类。示例代码展示了如何注册、触发和取消事件,图文并茂地说明了该模式的实际效果。发布-订阅模式有助于系统解耦,提升代码的可扩展性和灵活性,适合需要高效事件管理的场景。
167 12
HarmonyOS Next 浅谈 发布-订阅模式
|
8月前
|
传感器 JavaScript 调度
HarmonyOS Next 并发 taskpool 和 worker
HarmonyOS Next 提供了 TaskPool 和 Worker 两种并发能力,基于 Actor 并发模型实现。TaskPool 是 Worker 的封装,支持参数直接传递、返回数据接收、任务优先级设置及取消功能,适合大多数场景;Worker 则适用于超长任务或需手动管理线程生命周期的场景。两者通过消息通信完成跨线程数据交换,支持普通对象拷贝、ArrayBuffer 拷贝/转移、SharedArrayBuffer 共享及 Sendable 引用传递等方式。实际开发中,TaskPool 更简化任务调度,而 Worker 更灵活,可根据任务类型(耗时、长时、常驻)选择合适方案。
293 12
HarmonyOS Next 并发 taskpool 和 worker
|
8月前
|
存储 JavaScript 安全
HarmonyOSNext 端云一体化(6)
本文深入讲解了 HarmonyOSNext 的端云一体化开发中的云函数部分,重点介绍云对象的创建、调试、部署及调用方法。云函数采用 serverless 技术,使用 TypeScript 语法,简化后端开发流程。文章详细说明了云对象的创建步骤、配置文件解析(如 `function-config.json` 和 `package.json`),以及如何通过 DevEco Studio 调试和部署云对象。此外,还探讨了云对象调用云数据库、云存储、第三方 API 及其他云对象的具体实现方式,并提供了客户端调用云对象的示例代码。
247 8
 HarmonyOSNext 端云一体化(6)
下一篇
开通oss服务