鸿蒙开发接口数据管理:【@ohos.data.rdb (关系型数据库)】
关系型数据库
关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。
该模块提供以下关系型数据库相关的常用功能:
- [RdbPredicates]: 数据库中用来代表数据实体的性质、特征或者数据实体之间关系的词项,主要用来定义数据库的操作条件。
- [RdbStore]:提供管理关系数据库(RDB)方法的接口。
说明:
本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import data_rdb from '@ohos.data.rdb';
data_rdb.getRdbStore
getRdbStore(context: Context, config: StoreConfig, version: number, callback: AsyncCallback): void
获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以callback形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 应用的上下文。 FA模型的应用Context定义见[Context]。 Stage模型的应用Context定义见[Context]。 |
config | [StoreConfig] | 是 | 与此RDB存储相关的数据库配置。 |
version | number | 是 | 数据库版本。 |
callback | AsyncCallback<[RdbStore]> | 是 | 指定callback回调函数,返回一个RdbStore。 |
示例:
const STORE_CONFIG = { name: "RdbTest.db"}
data_rdb.getRdbStore(this.context, STORE_CONFIG, 1, function (err, rdbStore) {if (err) {console.info("Get RdbStore failed, err: " + err)return}console.log("Get RdbStore successfully.")
})
data_rdb.getRdbStore
getRdbStore(context: Context, config: StoreConfig, version: number): Promise
获得一个相关的RdbStore,操作关系型数据库,用户可以根据自己的需求配置RdbStore的参数,然后通过RdbStore调用相关接口可以执行相关的数据操作,结果以Promise形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 应用的上下文。 FA模型的应用Context定义见[Context]。 Stage模型的应用Context定义见[Context]。 |
config | [StoreConfig] | 是 | 与此RDB存储相关的数据库配置。 |
version | number | 是 | 数据库版本。 |
返回值:
类型 | 说明 |
---|---|
Promise<[RdbStore]> | 指定Promise回调函数。返回一个RdbStore。 |
示例:
const STORE_CONFIG = { name: "RdbTest.db" }
let promise = data_rdb.getRdbStore(this.context, STORE_CONFIG, 1);
promise.then(async (rdbStore) => {console.log("Get RdbStore successfully.")
}).catch((err) => {console.log("Get RdbStore failed, err: " + err)
})
data_rdb.deleteRdbStore
deleteRdbStore(context: Context, name: string, callback: AsyncCallback): void
删除数据库,结果以callback形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 应用的上下文。 FA模型的应用Context定义见[Context]。 Stage模型的应用Context定义见[Context]。 |
name | string | 是 | 数据库名称。 |
callback | AsyncCallback | 是 | 指定callback回调函数。 |
示例:
data_rdb.deleteRdbStore(this.context, "RdbTest.db", function (err, rdbStore) {if (err) {console.info("Delete RdbStore failed, err: " + err)return}console.log("Delete RdbStore successfully.")
})
data_rdb.deleteRdbStore
deleteRdbStore(context: Context, name: string): Promise
使用指定的数据库文件配置删除数据库,结果以Promise形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 应用的上下文。 FA模型的应用Context定义见[Context]。 Stage模型的应用Context定义见[Context]。 |
name | string | 是 | 数据库名称。 |
返回值:
类型 | 说明 |
---|---|
Promise | 指定Promise回调函数。 |
示例:
let promise = data_rdb.deleteRdbStore(this.context, "RdbTest.db")
promise.then(()=>{console.log("Delete RdbStore successfully.")
}).catch((err) => {console.info("Delete RdbStore failed, err: " + err)
})
RdbPredicates
表示关系型数据库(RDB)的谓词。该类确定RDB中条件表达式的值是true还是false。
constructor
constructor(name: string)
构造函数。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 数据库表名。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
inDevices8+
inDevices(devices: Array): RdbPredicates
同步分布式数据库时指定组网内的远程设备。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
devices | Array | 是 | 指定的组网内的远程设备ID。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.inDevices(['12345678abcde'])
inAllDevices8+
inAllDevices(): RdbPredicates
同步分布式数据库时连接到组网内的所有远程设备。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.inAllDevices()
equalTo
equalTo(field: string, value: ValueType): RdbPredicates
配置谓词以匹配数据字段为ValueType且值等于指定值的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | [ValueType] | 是 | 指示要与谓词匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi")
notEqualTo
notEqualTo(field: string, value: ValueType): RdbPredicates
配置谓词以匹配数据字段为ValueType且值不等于指定值的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | [ValueType] | 是 | 指示要与谓词匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notEqualTo("NAME", "lisi")
beginWrap
beginWrap(): RdbPredicates
向谓词添加左括号。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回带有左括号的Rdb谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi").beginWrap().equalTo("AGE", 18).or().equalTo("SALARY", 200.5).endWrap()
endWrap
endWrap(): RdbPredicates
向谓词添加右括号。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回带有右括号的Rdb谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "lisi").beginWrap().equalTo("AGE", 18).or().equalTo("SALARY", 200.5).endWrap()
or
or(): RdbPredicates
将或条件添加到谓词中。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回带有或条件的Rdb谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa").or().equalTo("NAME", "Rose")
and
and(): RdbPredicates
向谓词添加和条件。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回带有和条件的Rdb谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa").and().equalTo("SALARY", 200.5)
contains
contains(field: string, value: string): RdbPredicates
配置谓词以匹配数据字段为string且value包含指定值的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | string | 是 | 指示要与谓词匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.contains("NAME", "os")
beginsWith
beginsWith(field: string, value: string): RdbPredicates
配置谓词以匹配数据字段为string且值以指定字符串开头的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | string | 是 | 指示要与谓词匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.beginsWith("NAME", "os")
endsWith
endsWith(field: string, value: string): RdbPredicates
配置谓词以匹配数据字段为string且值以指定字符串结尾的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | string | 是 | 指示要与谓词匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.endsWith("NAME", "se")
isNull
isNull(field: string): RdbPredicates
配置谓词以匹配值为null的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
- 示例
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.isNull("NAME")
isNotNull
isNotNull(field: string): RdbPredicates
配置谓词以匹配值不为null的指定字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.isNotNull("NAME")
like
like(field: string, value: string): RdbPredicates
配置谓词以匹配数据字段为string且值类似于指定字符串的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | string | 是 | 指示要与谓词匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.like("NAME", "%os%")
glob
glob(field: string, value: string): RdbPredicates
配置RdbPredicates匹配数据字段为string的指定字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | string | 是 | 指示要与谓词匹配的值。 支持通配符,*表示0个、1个或多个数字或字符,?表示1个数字或字符。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.glob("NAME", "?h*g")
between
between(field: string, low: ValueType, high: ValueType): RdbPredicates
将谓词配置为匹配数据字段为ValueType且value在给定范围内的指定字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
low | [ValueType] | 是 | 指示与谓词匹配的最小值。 |
high | [ValueType] | 是 | 指示要与谓词匹配的最大值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.between("AGE", 10, 50)
notBetween
notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates
配置RdbPredicates以匹配数据字段为ValueType且value超出给定范围的指定字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
low | [ValueType] | 是 | 指示与谓词匹配的最小值。 |
high | [ValueType] | 是 | 指示要与谓词匹配的最大值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notBetween("AGE", 10, 50)
greaterThan
greaterThan(field: string, value: ValueType): RdbPredicates
配置谓词以匹配数据字段为ValueType且值大于指定值的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | [ValueType] | 是 | 指示要与谓词匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.greaterThan("AGE", 18)
lessThan
lessThan(field: string, value: ValueType): RdbPredicates
配置谓词以匹配数据字段为valueType且value小于指定值的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | [ValueType] | 是 | 指示要与谓词匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.lessThan("AGE", 20)
greaterThanOrEqualTo
greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates
配置谓词以匹配数据字段为ValueType且value大于或等于指定值的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | [ValueType] | 是 | 指示要与谓词匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.greaterThanOrEqualTo("AGE", 18)
lessThanOrEqualTo
lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates
配置谓词以匹配数据字段为ValueType且value小于或等于指定值的字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | [ValueType] | 是 | 指示要与谓词匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.lessThanOrEqualTo("AGE", 20)
orderByAsc
orderByAsc(field: string): RdbPredicates
配置谓词以匹配其值按升序排序的列。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.orderByAsc("NAME")
orderByDesc
orderByDesc(field: string): RdbPredicates
配置谓词以匹配其值按降序排序的列。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.orderByDesc("AGE")
distinct
distinct(): RdbPredicates
配置谓词以过滤重复记录并仅保留其中一个。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回可用于过滤重复记录的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").distinct("NAME")
let promise = rdbStore.query(predicates, ["NAME"])
promise.then((resultSet) => {console.log("resultSet column names:" + resultSet.columnNames)console.log("resultSet column count:" + resultSet.columnCount)
}).catch((err) => {console.log("query err.")
})
limitAs
limitAs(value: number): RdbPredicates
设置最大数据记录数的谓词。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | 是 | 最大数据记录数。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回可用于设置最大数据记录数的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").limitAs(3)
offsetAs
offsetAs(rowOffset: number): RdbPredicates
配置RdbPredicates以指定返回结果的起始位置。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
rowOffset | number | 是 | 返回结果的起始位置,取值为正整数。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回具有指定返回结果起始位置的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose").offsetAs(3)
groupBy
groupBy(fields: Array): RdbPredicates
配置RdbPredicates按指定列分组查询结果。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fields | Array | 是 | 指定分组依赖的列名。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回分组查询列的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.groupBy(["AGE", "NAME"])
indexedBy
indexedBy(field: string): RdbPredicates
配置RdbPredicates以指定索引列。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 索引列的名称。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回具有指定索引列的RdbPredicates。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.indexedBy("SALARY_INDEX")
in
in(field: string, value: Array): RdbPredicates
配置RdbPredicates以匹配数据字段为ValueType数组且值在给定范围内的指定字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | Array<[ValueType]> | 是 | 以ValueType型数组形式指定的要匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.in("AGE", [18, 20])
notIn
notIn(field: string, value: Array): RdbPredicates
将RdbPredicates配置为匹配数据字段为ValueType且值超出给定范围的指定字段。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
field | string | 是 | 数据库表中的列名。 |
value | Array<[ValueType]> | 是 | 以ValueType数组形式指定的要匹配的值。 |
返回值:
类型 | 说明 |
---|---|
[RdbPredicates] | 返回与指定字段匹配的谓词。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.notIn("NAME", ["Lisa", "Rose"])
RdbStore
提供管理关系数据库(RDB)方法的接口。
insert
insert(table: string, values: ValuesBucket, callback: AsyncCallback):void
向目标表中插入一行数据,结果以callback形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
table | string | 是 | 指定的目标表名。 |
values | [ValuesBucket] | 是 | 表示要插入到表中的数据行。 |
callback | AsyncCallback | 是 | 指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 |
示例:
const valueBucket = {"NAME": "Lisa","AGE": 18,"SALARY": 100.5,"CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) {if (err) {console.info("Insert failed, err: " + err)return}console.log("Insert first done: " + ret)
})
insert
insert(table: string, values: ValuesBucket):Promise
向目标表中插入一行数据,结果以Promise形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
table | string | 是 | 指定的目标表名。 |
values | [ValuesBucket] | 是 | 表示要插入到表中的数据行。 |
返回值:
类型 | 说明 |
---|---|
Promise | 指定Promise回调函数。如果操作成功,返回行ID;否则返回-1。 |
示例:
const valueBucket = {"NAME": "Lisa","AGE": 18,"SALARY": 100.5,"CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let promise = rdbStore.insert("EMPLOYEE", valueBucket)
promise.then(async (ret) => {console.log("Insert first done: " + ret)
}).catch((err) => {console.log("Insert failed, err: " + err)
})
update
update(values: ValuesBucket, predicates: RdbPredicates, callback: AsyncCallback):void
根据RdbPredicates的指定实例对象更新数据库中的数据,结果以callback形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
values | [ValuesBucket] | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
predicates | [RdbPredicates] | 是 | RdbPredicates的实例对象指定的更新条件。 |
callback | AsyncCallback | 是 | 指定的callback回调方法。返回受影响的行数。 |
示例:
const valueBucket = {"NAME": "Rose","AGE": 22,"SALARY": 200.5,"CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
rdbStore.update(valueBucket, predicates, function (err, ret) {if (err) {console.info("Updated failed, err: " + err)return}console.log("Updated row count: " + ret)
})
update
update(values: ValuesBucket, predicates: RdbPredicates):Promise
根据RdbPredicates的指定实例对象更新数据库中的数据,结果以Promise形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
values | [ValuesBucket] | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
predicates | [RdbPredicates] | 是 | RdbPredicates的实例对象指定的更新条件。 |
返回值:
类型 | 说明 |
---|---|
Promise | 指定的Promise回调方法。返回受影响的行数。 |
示例:
const valueBucket = {"NAME": "Rose","AGE": 22,"SALARY": 200.5,"CODES": new Uint8Array([1, 2, 3, 4, 5]),
}
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.update(valueBucket, predicates)
promise.then(async (ret) => {console.log("Updated row count: " + ret)
}).catch((err) => {console.info("Updated failed, err: " + err)
})
delete
delete(predicates: RdbPredicates, callback: AsyncCallback):void
根据RdbPredicates的指定实例对象从数据库中删除数据,结果以callback形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
predicates | [RdbPredicates] | 是 | RdbPredicates的实例对象指定的删除条件。 |
callback | AsyncCallback | 是 | 指定callback回调函数。返回受影响的行数。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
rdbStore.delete(predicates, function (err, rows) {if (err) {console.info("Delete failed, err: " + err)return}console.log("Delete rows: " + rows)
})
delete
delete(predicates: RdbPredicates):Promise
根据RdbPredicates的指定实例对象从数据库中删除数据,结果以Promise形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
predicates | [RdbPredicates] | 是 | RdbPredicates的实例对象指定的删除条件。 |
返回值:
类型 | 说明 |
---|---|
Promise | 指定Promise回调函数。返回受影响的行数。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Lisa")
let promise = rdbStore.delete(predicates)
promise.then((rows) => {console.log("Delete rows: " + rows)
}).catch((err) => {console.info("Delete failed, err: " + err)
})
query
query(predicates: RdbPredicates, columns: Array, callback: AsyncCallback):void
根据指定条件查询数据库中的数据,结果以callback形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
predicates | [RdbPredicates] | 是 | RdbPredicates的实例对象指定的查询条件。 |
columns | Array | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
callback | AsyncCallback<[ResultSet]> | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose")
rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (err, resultSet) {if (err) {console.info("Query failed, err: " + err)return}console.log("ResultSet column names: " + resultSet.columnNames)console.log("ResultSet column count: " + resultSet.columnCount)
})
query
query(predicates: RdbPredicates, columns?: Array):Promise
根据指定条件查询数据库中的数据,结果以Promise形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
predicates | [RdbPredicates] | 是 | RdbPredicates的实例对象指定的查询条件。 |
columns | Array | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
返回值:
类型 | 说明 |
---|---|
Promise<[ResultSet]> | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |
示例:
let predicates = new data_rdb.RdbPredicates("EMPLOYEE")
predicates.equalTo("NAME", "Rose")
let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promise.then((resultSet) => {console.log("ResultSet column names: " + resultSet.columnNames)console.log("ResultSet column count: " + resultSet.columnCount)
}).catch((err) => {console.info("Query failed, err: " + err)
})
querySql8+
querySql(sql: string, bindArgs: Array, callback: AsyncCallback):void
根据指定SQL语句查询数据库中的数据,结果以callback形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
sql | string | 是 | 指定要执行的SQL语句。 |
bindArgs | Array<[ValueType]> | 是 | SQL语句中参数的值。 |
callback | AsyncCallback<[ResultSet]> | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
示例:
rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'], function (err, resultSet) {if (err) {console.info("Query failed, err: " + err)return}console.log("ResultSet column names: " + resultSet.columnNames)console.log("ResultSet column count: " + resultSet.columnCount)
})
querySql8+
querySql(sql: string, bindArgs?: Array):Promise
根据指定SQL语句查询数据库中的数据,结果以Promise形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
sql | string | 是 | 指定要执行的SQL语句。 |
bindArgs | Array<[ValueType]> | 否 | SQL语句中参数的值。 |
返回值:
类型 | 说明 |
---|---|
Promise<[ResultSet]> | 指定Promise回调函数。如果操作成功,则返回ResultSet对象。 |
示例:
let promise = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'])
promise.then((resultSet) => {console.log("ResultSet column names: " + resultSet.columnNames)console.log("ResultSet column count: " + resultSet.columnCount)
}).catch((err) => {console.info("Query failed, err: " + err)
})
executeSql
executeSql(sql: string, bindArgs: Array, callback: AsyncCallback):void
执行包含指定参数但不返回值的SQL语句,结果以callback形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
sql | string | 是 | 指定要执行的SQL语句。 |
bindArgs | Array<[ValueType]> | 是 | SQL语句中参数的值。 |
callback | AsyncCallback | 是 | 指定callback回调函数。 |
示例:
const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)"
rdbStore.executeSql(SQL_CREATE_TABLE, null, function(err) {if (err) {console.info("ExecuteSql failed, err: " + err)return}console.info('Create table done.')
})
executeSql
executeSql(sql: string, bindArgs?: Array):Promise
执行包含指定参数但不返回值的SQL语句,结果以Promise形式返回。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
sql | string | 是 | 指定要执行的SQL语句。 |
bindArgs | Array<[ValueType]> | 否 | SQL语句中参数的值。 |
返回值:
类型 | 说明 |
---|---|
Promise | 指定Promise回调函数。 |
示例:
const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)"
let promise = rdbStore.executeSql(SQL_CREATE_TABLE)
promise.then(() => {console.info('Create table done.')
}).catch((err) => {console.info("ExecuteSql failed, err: " + err)
})
beginTransaction8+
beginTransaction():void
在开始执行SQL语句之前,开始事务。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
示例:
rdbStore.beginTransaction()
const valueBucket = {"name": "lisi","age": 18,"salary": 100.5,"blobType": new Uint8Array([1, 2, 3]),
}
rdbStore.insert("test", valueBucket, function (err, ret) {if (err) {console.info("Insert failed, err: " + err)return}console.log("Insert successfully: " + ret)
})
rdbStore.commit()
commit8+
commit():void
提交已执行的SQL语句。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
示例:
rdbStore.beginTransaction()
const valueBucket = {"name": "lisi","age": 18,"salary": 100.5,"blobType": new Uint8Array([1, 2, 3]),
}rdbStore.insert("test", valueBucket, function (err, ret) {if (err) {console.info("Insert failed, err: " + err)return}console.log("Insert successfully: " + ret)
})
rdbStore.commit()
rollBack8+
rollBack():void;
回滚已经执行的SQL语句。
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
示例:
try {rdbStore.beginTransaction()const valueBucket = {"id": 1,"name": "lisi","age": 18,"salary": 100.5,"blobType": new Uint8Array([1, 2, 3]),}rdbStore.insert("test", valueBucket, function (err, ret) {if (err) {console.info("Insert failed, err: " + err)return}console.log("Insert successfully: " + ret)})rdbStore.commit()
} catch (e) {rdbStore.rollBack()
}
setDistributedTables8+
setDistributedTables(tables: Array, callback: AsyncCallback): void
设置分布式列表,结果以callback形式返回。
需要权限: ohos.permission.DISTRIBUTED_DATASYNC
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
tables | Array | 是 | 要设置的分布式列表表名 |
callback | AsyncCallback | 是 | 指定callback回调函数。 |
示例:
rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {if (err) {console.info('SetDistributedTables failed, err: ' + err)return}console.info('SetDistributedTables successfully.')
})
setDistributedTables8+
setDistributedTables(tables: Array): Promise
设置分布式列表,结果以Promise形式返回。
需要权限: ohos.permission.DISTRIBUTED_DATASYNC
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
tables | Array | 是 | 要设置的分布式列表表名。 |
返回值:
类型 | 说明 |
---|---|
Promise | 指定Promise回调函数。 |
示例:
let promise = rdbStore.setDistributedTables(["EMPLOYEE"])
promise.then(() => {console.info("SetDistributedTables successfully.")
}).catch((err) => {console.info("SetDistributedTables failed, err: " + err)
})
obtainDistributedTableName8+
obtainDistributedTableName(device: string, table: string, callback: AsyncCallback): void
根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 结果以callback形式返回。
需要权限: ohos.permission.DISTRIBUTED_DATASYNC
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
device | string | 是 | 远程设备 。 |
table | string | 是 | 本地表名。 |
callback | AsyncCallback | 是 | 指定的callback回调函数。如果操作成功,返回远程设备的分布式表名。 |
示例:
rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE", function (err, tableName) {if (err) {console.info('ObtainDistributedTableName failed, err: ' + err)return}console.info('ObtainDistributedTableName successfully, tableName=' + tableName)
})
obtainDistributedTableName8+
obtainDistributedTableName(device: string, table: string): Promise
根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,结果以Promise形式返回。
需要权限: ohos.permission.DISTRIBUTED_DATASYNC
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
device | string | 是 | 远程设备。 |
table | string | 是 | 本地表名。 |
返回值:
类型 | 说明 |
---|---|
Promise | 指定Promise回调函数。如果操作成功,返回远程设备的分布式表名。 |
示例:
let promise = rdbStore.obtainDistributedTableName("12345678abcde", "EMPLOYEE")
promise.then((tableName) => {console.info('ObtainDistributedTableName successfully, tableName=' + tableName)
}).catch((err) => {console.info('ObtainDistributedTableName failed, err: ' + err)
})
sync8+
sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback<Array<[string, number]>>): void
在设备之间同步数据, 结果以callback形式返回。
需要权限: ohos.permission.DISTRIBUTED_DATASYNC
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mode | [SyncMode] | 是 | 指同步模式。该值可以是推、拉。 |
predicates | [RdbPredicates] | 是 | 约束同步数据和设备。 |
callback | AsyncCallback<Array<[string, number]>> | 是 | 指定的callback回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 |
示例:
let predicates = new data_rdb.RdbPredicates('EMPLOYEE')
predicates.inDevices(['12345678abcde'])
rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, result) {if (err) {console.log('Sync failed, err: ' + err)return}console.log('Sync done.')for (let i = 0; i < result.length; i++) {console.log('device=' + result[i][0] + ' status=' + result[i][1])}
})
sync8+
sync(mode: SyncMode, predicates: RdbPredicates): Promise<Array<[string, number]>>
在设备之间同步数据,结果以Promise形式返回。
需要权限: ohos.permission.DISTRIBUTED_DATASYNC
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mode | [SyncMode] | 是 | 指同步模式。该值可以是推、拉。 |
predicates | [RdbPredicates] | 是 | 约束同步数据和设备。 |
返回值:
类型 | 说明 |
---|---|
Promise<Array<[string, number]>> | 指定Promise回调函数,用于向调用者发送同步结果。string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 |
示例:
let predicates = new data_rdb.RdbPredicates('EMPLOYEE')
predicates.inDevices(['12345678abcde'])
let promise = rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates)
promise.then((result) =>{console.log('Sync done.')for (let i = 0; i < result.length; i++) {console.log('device=' + result[i][0] + ' status=' + result[i][1])}
}).catch((err) => {console.log('Sync failed')
})
on(‘dataChange’)8+
on(event: ‘dataChange’, type: SubscribeType, observer: Callback<Array>): void
注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。
需要权限: ohos.permission.DISTRIBUTED_DATASYNC
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 取值为’dataChange’,表示数据更改。 |
type | [SubscribeType] | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
observer | Callback<Array> | 是 | 指分布式数据库中数据更改事件的观察者。 |
示例:
function storeObserver(devices) {for (let i = 0; i < devices.length; i++) {console.log('device=' + devices[i] + ' data changed')}
}
try {rdbStore.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) {console.log('Register observer failed')
}
off(‘dataChange’)8+
off(event:‘dataChange’, type: SubscribeType, observer: Callback<Array>): void
从数据库中删除指定类型的指定观察者, 结果以callback形式返回。
需要权限: ohos.permission.DISTRIBUTED_DATASYNC
系统能力: SystemCapability.DistributedDataManager.RelationalStore.Core。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 取值为’dataChange’,表示数据更改。 |
type | [SubscribeType] | 是 | 指在{@code SubscribeType}中定义的订阅类型。 |
observer | Callback<Array> | 是 | 指已注册的数据更改观察者。 |
示例:
function storeObserver(devices) {for (let i = 0; i < devices.length; i++) {console.log('device=' + devices[i] + ' data changed')}
}
try {rdbStore.off('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) {console.log('Unregister observer failed')
}
StoreConfig
管理关系数据库配置。
系统能力: 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 数据库文件名。 |
ValueType
用于表示允许的数据字段类型。
系统能力: 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
名称 | 说明 |
---|---|
number | 表示值类型为数字。 |
string | 表示值类型为字符。 |
boolean | 表示值类型为布尔值。 |
ValuesBucket
用于存储键值对。
系统能力: 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
名称 | 参数类型 | 必填 | 说明 |
---|---|---|---|
[key: string] | [ValueType] | Uint8Array | null |
SyncMode8+
指数据库同步模式。
系统能力: 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
名称 | 默认值 | 说明 |
---|---|---|
SYNC_MODE_PUSH | 0 | 表示数据从本地设备推送到远程设备。 |
SYNC_MODE_PULL | 1 | 表示数据从远程设备拉至本地设备。 |
SubscribeType8+
描述订阅类型。
需要权限: ohos.permission.DISTRIBUTED_DATASYNC
系统能力: 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
名称 | 默认值 | 说明 |
---|---|---|
SUBSCRIBE_TYPE_REMOTE | 0 | 订阅远程数据更改。 |
相关文章:
鸿蒙开发接口数据管理:【@ohos.data.rdb (关系型数据库)】
关系型数据库 关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可…...
Java返回前端Bigdecimal类型数据时“0E-8“及小数点多余0的问题
目录 问题描述: 解决方法: 重要代码: 问题描述: 项目中oracle数据库需要转换为mysql,Oracle中的表字段定义为number(36,16)类型的工具自动转换为mysql的decimal(36,16)。在Oracle数据库中,number(36,16)类型的字段,使用BigDeci…...
标题:深入探索Linux中的`ausyscall`
标题:深入探索Linux中的ausyscall(注意:ausyscall并非Linux内核标准命令,但我们可以探讨类似的概念) 在Linux系统中,系统调用(syscall)是用户空间程序与内核空间进行交互的一种重要…...

CorelDRAW2024发布更新啦!设计师们的得力助手
在数字化的今天,视觉设计已经成为我们生活中不可或缺的一部分。从手机界面到广告海报,从网页布局到包装设计,每一个细节都离不开设计师们的专业与创意。然而,面对日益增长的设计需求和不断提升的审美标准,许多设计师开…...

SpringMVC日期格式处理 分页条件查询
实现日期格式处理: springmvc能实现String类型和基本数据类型及包装类的自动格式转换,但是不能识别String和 日期类格式的自动转换。 实现方式: 1是在实体类上加上注解DateTimeFormat,识别String格式为“yyyy-MM-dd” 2使用自定义…...

蓝桥云课第12届强者挑战赛
第一题:字符串加法 其实本质上就是一个高精度问题,可以使用同余定理的推论 (ab)%n((a%n)(b%n))%n; #include <iostream> using namespace std; const int mod1e97; int main() {string a,b;cin>>a>>b;ab;int …...

LabVIEW储油罐监控系统
LabVIEW储油罐监控系统 介绍了基于LabVIEW的储油罐监控系统的设计与实施。系统通过集成传感器技术和虚拟仪器技术,实现对储油罐内液位和温度的实时监控,提高了油罐监管的数字化和智能化水平,有效增强了油库安全管理的能力。 项目背景 随着…...
局域网、城域网、广域网的ip
一、 广域网ip: 全球共享同一个广域网,所以广域网也被称为公网,所以广域网的ip也称为公网ip,全球公网ip必须是都是唯一的,不能冲突。 二、城域网、局域网ip: 可以有无数个局域网、城域网,虽然在…...

【全开源】Java共享茶室棋牌室无人系统支持微信小程序+微信公众号
打造智能化休闲新体验 一、引言:智能化休闲时代的来临 随着科技的飞速发展,智能化、无人化服务逐渐渗透到我们生活的各个领域。在休闲娱乐行业,共享茶室棋牌室无人系统源码的出现,不仅革新了传统的休闲方式,更为消费…...
echarts数据更新没反应解决方案
数据处理逻辑问题: 确保data数组在传入函数时确实发生了变化,并且这些变化对于生成newData1和newData2是有效的。您可以增加一些日志输出来验证处理后的数据是否如预期那样被更新了。 ECharts实例未正确更新: 虽然使用了myChart.setOption…...

RK3588+FPGA+算能BM1684X:高性能AI边缘计算盒子,应用于视频分析、图像视觉等
搭载RK3588(四核 A76四核 A55),CPU主频高达 2.4GHz ,提供1MB L2 Cache 和 3MB L3 ,Cache提供更强的 CPU运算能力,具备6T AI算力,可扩展至38T算力。 产品规格 系统主控CPURK3588,四核…...

Mysql学习(三)——SQL通用语法之DML
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 DML添加数据修改数据删除数据 总结 DML DML用来对数据库中表的数据记录进行增删改操作。 添加数据 -- 给指定字段添加数据 insert into 表名(字段1,字…...
java static 如何理解
在Java中,static关键字是一个重要的概念,它用于定义类的静态成员,包括静态变量(也称作类变量)、静态方法和静态代码块。static关键字的主要作用是创建独立于对象的成员,这些成员属于类本身,而不…...

算法金 | 不愧是腾讯,问基础巨细节 。。。
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 最近,有读者参加了腾讯算法岗位的面试,面试着重考察了基础知识,并且提问非常详细。 特别是关于Ada…...

实验9 浮动静态路由配置
--名称-- 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤 一、 原理描述 浮动静态路由也是一种特殊的静态路由,主要考虑链路冗余。浮动静态路由通过配置一条比主路由优先级低的静态路由,用于保证在主路由失效的情况下,…...

多源最短路径算法–Floyd算法
多源最短路径算法–Floyd算法 Floyd算法是为了求出每一对顶点之间的最短路径 它使用了动态规划的思想,将问题的求解分为了多个阶段 先来个例子,这是个有向图 Floyd算法的运行需要两个矩阵 最短路径矩阵 从当前这个状态看各顶点间的最短路径长度 例…...

使用Redis缓存实现短信登录逻辑,手机验证码缓存,用户信息缓存
引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 加配置 spring:redis:host: 127.0.0.1 #redis地址port: 6379 #端口password: 123456 #密码…...

探索未来制造,BFT Robotics引领潮流
“买机器人,上BFT” 在这个快速变化的时代,创新和效率是企业发展的关键。BFT Robotics,作为您值得信赖的合作伙伴,专注于为您提供一站式的机器人采购和自动化解决方案。 产品系列: 协作机器人:安全、灵活、…...

数组中的第K个最大元素 ---- 分治-快排
题目链接 题目: 分析: 这道题很明显是一个top-K问题, 我们很容易想到用堆排序来解决, 堆排序的时间复杂度是O(N*logN), 不符合题意, 所以我们可以用另一种方法:快速选择算法, 他的时间复杂度为O(N)快速选择算法, 其实是基于快排, 进行修改而成, 我们还是使用将"将数组分…...
函数或变量 ‘tfrstft‘ 无法识别
参考博客 Matlab时频工具箱tftb下载及安装_tftb工具箱-CSDN博客 解决。...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...