0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发接口数据管理:【data/rdb/resultSet (结果集)】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-11 16:59 次阅读

结果集

结果集是指用户调用关系型数据库查询接口之后返回的结果集合,提供了多种灵活的数据访问方式,以便用户获取各项数据。

说明:
开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

使用说明

需要通过[RdbStore.query()]获取resultSet对象。

import dataRdb from '@ohos.data.rdb';
let predicates = new dataRdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("AGE", 18)
let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promise.then((resultSet) = > {
    console.log(TAG + "resultSet columnNames:" + resultSet.columnNames);
    console.log(TAG + "resultSet columnCount:" + resultSet.columnCount);})

ResultSet

提供通过查询数据库生成的数据库结果集的访问方法。

属性

系统能力: 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。

名称参数类型必填说明
columnNamesArray获取结果集中所有列的名称。
columnCountnumber获取结果集中的列数。
rowCountnumber获取结果集中的行数。
rowIndexnumber获取结果集当前行的索引
isAtFirstRowboolean检查结果集是否位于第一行。
isAtLastRowboolean检查结果集是否位于最后一行。
isEndedboolean检查结果集是否位于最后一行之后。
isStartedboolean检查指针是否移动过。
isClosedboolean检查当前结果集是否关闭。

getColumnIndex

getColumnIndex(columnName: string): number

根据指定的列名获取列索引。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

参数:

参数名类型必填说明
columnNamestring表示结果集中指定列的名称。

返回值:

类型说明
number返回指定列的索引。

示例:

resultSet.goToFirstRow()
const id = resultSet.getLong(resultSet.getColumnIndex("ID"))
const name = resultSet.getString(resultSet.getColumnIndex("NAME"))
const age = resultSet.getLong(resultSet.getColumnIndex("AGE"))
const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY"))

getColumnName

getColumnName(columnIndex: number): string

根据指定的列索引获取列名。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

参数:

参数名类型必填说明
columnIndexnumber表示结果集中指定列的索引。

返回值:

类型说明
string返回指定列的名称。

示例:

const id = resultSet.getColumnName(0)
const name = resultSet.getColumnName(1)
const age = resultSet.getColumnName(2)

goTo

goTo(offset:number): boolean

向前或向后转至结果集的指定行,相对于其当前位置偏移。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

参数:

参数名类型必填说明
offsetnumber表示相对于当前位置的偏移量。

返回值:

类型说明
boolean如果成功移动结果集,则为true;否则返回false。

示例:

let predicatesgoto = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoto = rdbStore.query(predicatesgoto, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygoto.then((resultSet) {
    resultSet.goTo(1)
    resultSet.close()
}).catch((err) = > {
    console.log('query failed')
})

goToRow

goToRow(position: number): boolean

转到结果集的指定行。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

参数:

参数名类型必填说明
positionnumber表示要移动到的指定位置。

返回值:

类型说明
boolean如果成功移动结果集,则为true;否则返回false。

示例:

let predicatesgotorow = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygotorow = rdbStore.query(predicatesgotorow, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygotorow.then((resultSet) {
    resultSet.goToRow(5)
    resultSet.close()
}).catch((err) = > {
    console.log('query failed')
})

goToFirstRow

goToFirstRow(): boolean

转到结果集的第一行。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

返回值:

类型说明
boolean如果成功移动结果集,则为true;否则返回false。

示例:

let predicatesgoFirst = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoFirst = rdbStore.query(predicatesgoFirst, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygoFirst.then((resultSet) {
    resultSet.goToFirstRow()
    resultSet.close()
}).catch((err) = > {
    console.log('query failed')
})

goToLastRow

goToLastRow(): boolean

转到结果集的最后一行。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

返回值:

类型说明
boolean如果成功移动结果集,则为true;否则返回false。

示例:

let predicatesgoLast = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoLast = rdbStore.query(predicatesgoLast, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygoLast.then((resultSet) {
    resultSet.goToLastRow()
    resultSet.close()
}).catch((err) = > {
    console.log('query failed')
})

goToNextRow

goToNextRow(): boolean

转到结果集的下一行。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

返回值:

类型说明
boolean如果成功移动结果集,则为true;否则返回false。

示例:

let predicatesgoNext = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoNext = rdbStore.query(predicatesgoNext, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygoNext.then((resultSet) {
    resultSet.goToNextRow()
    resultSet.close()
}).catch((err) = > {
    console.log('query failed')
})

goToPreviousRow

goToPreviousRow(): boolean

转到结果集的上一行。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

返回值:

类型说明
boolean如果成功移动结果集,则为true;否则返回false。

示例:

let predicatesgoPrev = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoPrev = rdbStore.query(predicatesgoPrev, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promisequerygoPrev.then((resultSet) {
    resultSet.goToPreviousRow()
    resultSet.close()
}).catch((err) = > {
    console.log('query failed')
})

getBlob

getBlob(columnIndex: number): Uint8Array

以字节数组的形式获取当前行中指定列的值。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

参数:

参数名类型必填说明
columnIndexnumber指定的列索引,从0开始。

返回值:

类型说明
Uint8Array以字节数组的形式返回指定列的值。

示例:

const codes = resultSet.getBlob(resultSet.getColumnIndex("CODES"))

getString

getString(columnIndex: number): string

以字符串形式获取当前行中指定列的值。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

参数:

参数名类型必填说明
columnIndexnumber指定的列索引,从0开始。

返回值:

类型说明
string以字符串形式返回指定列的值。

示例:

const name = resultSet.getString(resultSet.getColumnIndex("NAME"))

getLong

getLong(columnIndex: number): number

以Long形式获取当前行中指定列的值。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

参数:

参数名类型必填说明
columnIndexnumber指定的列索引,从0开始。

返回值:

类型说明
number以Long形式返回指定列的值。

示例:

const age = resultSet.getLong(resultSet.getColumnIndex("AGE"))

getDouble

getDouble(columnIndex: number): number

以double形式获取当前行中指定列的值。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

参数:

参数名类型必填说明
columnIndexnumber指定的列索引,从0开始。

返回值:

类型说明
number以double形式返回指定列的值。

示例:

const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY"))

isColumnNull

isColumnNull(columnIndex: number): boolean

检查当前行中指定列的值是否为null。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

参数:

参数名类型必填说明
columnIndexnumber指定的列索引,从0开始。

返回值:

类型说明
boolean如果当前行中指定列的值为null,则返回true,否则返回false。HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿

搜狗高速浏览器截图20240326151547.png

示例:

const isColumnNull = resultSet.isColumnNull(resultSet.getColumnIndex("CODES"))

close

close(): void

关闭结果集。

系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。

示例:

let predicatesClose = new dataRdb.RdbPredicates("EMPLOYEE")
let promiseClose = rdbStore.query(predicatesClose, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promiseClose.then((resultSet) {
    resultSet.close()
}).catch((err) = > {
    console.log('resultset close failed')
})

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8691

    浏览量

    151780
  • 数据管理
    +关注

    关注

    1

    文章

    300

    浏览量

    19660
  • 数据库
    +关注

    关注

    7

    文章

    3845

    浏览量

    64626
  • 鸿蒙
    +关注

    关注

    57

    文章

    2392

    浏览量

    43004
收藏 人收藏

    评论

    相关推荐

    OpenHarmony关系型数据库查询结果呈现

    `ResultSet`(结果)是OpenHarmony关系型数据库提供查询数据表返回结果的方法
    的头像 发表于 03-28 18:06 1545次阅读
    OpenHarmony关系型<b class='flag-5'>数据</b>库查询<b class='flag-5'>结果</b>呈现

    数据管理功能详解

    设计和数据标准化的同时,进一步实现行业数字化互通、产业智能化互联。浩辰3D软件作为创新研发类工业软件,不仅在智能设计和创新研发方面有着独特的优势,在数据管理方面更是独具匠心。浩辰3D软件可以在不使用数据
    发表于 11-03 15:32

    HarmonyOS应用开发数据交互--关系型数据库完整流程练习

    库名称使用默认配置创建数据库配置。 private RdbStore rdbStore;//提供管理关系数据库 (RDB) 的方法。 //RdbOpenCallback
    发表于 09-13 15:05

    基于Data Ability的关系型数据库和数据管理能力,实现数据库相关应用服务的快速开发

    ,基于Data Ability介绍数据库的创建、数据的增加/删除/修改/查询等操作方法,让您快速了解Data Ability和数据管理能力并
    发表于 09-26 16:43

    Harmony OS关系数据库的使用方法

      1. API使用  1.1 创建数据库    import dataRdb from ‘@ohos.data.rdb’  const STORE_CONFIG = {name
    发表于 03-11 16:41

    基于Rdb创建的一个Data_Ability的数据操作过程

    一套工具去管理其自身和其他应用存储数据的访问下面逐步分析基于Rdb创建的一个Data_Ability的数据操作过程//===========
    发表于 03-29 13:50

    OpenHarmony标准设备应用开发(三)——分布式数据管理

    设备应用开发的第三篇文章,将会在前面两章的基础上给大家讲解分布式数据管理在多台设备间,当数据出现变动时,通过订阅的方式,实现多台设备间的数据同步更新。为了更好的理解,我们使用 eTS
    发表于 04-07 18:48

    【学习打卡】OpenHarmony的分布式数据管理介绍

    使用它来做出更明智的决策,如果一个系统缺乏适当的数据管理,那就可能会导致数据孤岛、数据之间不一致,甚至数据本身存在错误。有效的分布式
    发表于 07-15 15:49

    HarmonyOS数据管理与应用数据持久化(一)

    。 运作机制 数据管理模块包括用户首选项、键值型数据管理、关系型数据管理、分布式数据对象和跨应用数据管理。Interface
    发表于 11-01 16:27

    集中于车身开发过程的数据管理技术研究

    集中于车身开发过程的数据管理技术研究Data management research focused on the process of auto-body development 第一章 绪论················
    发表于 01-01 01:01 13次下载

    一种实时数据管理系统的开发

    一种实时数据管理系统的开发,有兴趣的同学可以下载学习
    发表于 05-04 15:11 10次下载

    工业现场数据管理 | 什么是工业现场数据管理

    数据管理,以传输层/云作为界限,将其以下的所有南侧的车间、工厂、控制站点等工业现场封装成一个有序的“黑盒子”,并向外提供标准的通讯、数据和服务接口,便于各类平台、应用或云系统与工业现场进行数据
    的头像 发表于 04-28 19:08 2222次阅读

    试验数据管理系统TDM与SDM

    、仿真报告等。市场上的仿真数据管理软件主要来源于两个方面,一方面是CAE软件自带的仿真数据管理模块,另一方面是PLM厂商所推出的仿真数据管理系统。 SDM(Simulation Data
    发表于 04-16 09:01 2460次阅读

    鸿蒙开发接口数据管理:【@ohos.data.distributedData (分布式数据管理)】

    分布式数据管理为应用程序提供不同设备间数据库的分布式协同能力。通过调用分布式数据各个接口,应用程序可将数据保存到分布式
    的头像 发表于 06-07 09:30 1062次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>接口</b><b class='flag-5'>数据管理</b>:【@ohos.<b class='flag-5'>data</b>.distributedData (分布式<b class='flag-5'>数据管理</b>)】

    鸿蒙开发接口数据管理:【@ohos.data.rdb (关系型数据库)】

    关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据数据库。关系型
    的头像 发表于 06-10 18:35 1403次阅读