
HarmonyOSAPI:@ohos.data.distributedData (分布式数据管理)
版本:v3.1 Beta
@ohos.data.distributedData (分布式数据管理)
KVStore
KVStore数据库实例,提供增加数据、删除数据和订阅数据变更、订阅数据同步完成的方法。
在调用KVStore的方法前,需要先通过getKVStore构建一个KVStore实例。
put
put(key: string, value: Uint8Array | string | number | boolean, callback: AsyncCallback<void>): void
添加指定类型键值对到数据库,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
key | string | 是 | 要添加数据的key,不能为空且长度不大于MAX_KEY_LENGTH。 |
value | Uint8Array | string | number | boolean | 是 | 要添加数据的value,支持Uint8Array、number 、 string 、boolean,Uint8Array、string 的长度不大于MAX_VALUE_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
put
put(key: string, value: Uint8Array | string | number | boolean): Promise<void>
添加指定类型键值对到数据库,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
key | string | 是 | 要添加数据的key,不能为空且长度不大于MAX_KEY_LENGTH。 |
value | Uint8Array | string | number | boolean | 是 | 要添加数据的value,支持Uint8Array、number、 string、boolean,Uint8Array、string 的长度不大于MAX_VALUE_LENGTH。 |
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
delete
delete(key: string, callback: AsyncCallback<void>): void
从数据库中删除指定键值的数据,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
key | string | 是 | 要删除数据的key,不能为空且长度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
delete
delete(key: string): Promise<void>
从数据库中删除指定键值的数据,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
key | string | 是 | 要删除数据的key,不能为空且长度不大于MAX_KEY_LENGTH。 |
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
on('dataChange')
on(event: 'dataChange', type: SubscribeType, listener: Callback<ChangeNotification>): void
订阅指定类型的数据变更通知。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
event | string | 是 | 订阅的事件名,固定为'dataChange',表示数据变更事件。 |
type | 是 | 表示订阅的类型。 | |
listener | Callback<ChangeNotification> | 是 | 回调函数。 |
示例:
on('syncComplete')
on(event: 'syncComplete', syncCallback: Callback<Array<[string, number]>>): void
订阅同步完成事件回调通知。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
event | string | 是 | 订阅的事件名,固定为'syncComplete',表示同步完成事件。 |
syncCallback | Callback<Array<[string, number]>> | 是 | 回调函数。用于向调用方发送同步结果的回调。 |
示例:
off('dataChange')8+
off(event:'dataChange', listener?: Callback<ChangeNotification>): void
取消订阅数据变更通知。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
event | string | 是 | 取消订阅的事件名,固定为'dataChange',表示数据变更事件。 |
listener | Callback<ChangeNotification> | 否 | 回调函数。 |
示例:
off('syncComplete')8+
off(event: 'syncComplete', syncCallback?: Callback<Array<[string, number]>>): void
取消订阅同步完成事件回调通知。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
event | string | 是 | 取消订阅的事件名,固定为'syncComplete',表示同步完成事件。 |
syncCallback | Callback<Array<[string, number]>> | 否 | 回调函数。用于向调用方发送同步结果的回调。 |
示例:
putBatch8+
putBatch(entries: Entry[], callback: AsyncCallback<void>): void
批量插入键值对到KVStore数据库中,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
entries | Entry[] | 是 | 表示要批量插入的键值对。 |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
putBatch8+
putBatch(entries: Entry[]): Promise<void>
批量插入键值对到KVStore数据库中,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
entries | Entry[] | 是 | 表示要批量插入的键值对。 |
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
deleteBatch8+
deleteBatch(keys: string[], callback: AsyncCallback<void>): void
批量删除KVStore数据库中的键值对,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
keys | string[] | 是 | 表示要批量删除的键值对。 |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
deleteBatch8+
deleteBatch(keys: string[]): Promise<void>
批量删除KVStore数据库中的键值对,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
keys | string[] | 是 | 表示要批量删除的键值对。 |
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
startTransaction8+
startTransaction(callback: AsyncCallback<void>): void
启动KVStore数据库中的事务,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
startTransaction8+
startTransaction(): Promise<void>
启动KVStore数据库中的事务,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
commit8+
commit(callback: AsyncCallback<void>): void
提交KVStore数据库中的事务,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
commit8+
commit(): Promise<void>
提交KVStore数据库中的事务,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
rollback8+
rollback(callback: AsyncCallback<void>): void
在KVStore数据库中回滚事务,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
rollback8+
rollback(): Promise<void>
在KVStore数据库中回滚事务,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
enableSync8+
enableSync(enabled: boolean, callback: AsyncCallback<void>): void
设定是否开启同步,使用callback异步回调。
此接口能力在HarmonyOS 3.1Beta1暂不支持。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
enabled | boolean | 是 | 设定是否开启同步,true表示开启同步,false表示不启用同步。 |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
enableSync8+
enableSync(enabled: boolean): Promise<void>
设定是否开启同步,使用Promise异步回调。
此接口能力在HarmonyOS 3.1Beta1暂不支持。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
enabled | boolean | 是 | 设定是否开启同步,true表示开启同步,false表示不启用同步。 |
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
setSyncRange8+
setSyncRange(localLabels: string[], remoteSupportLabels: string[], callback: AsyncCallback<void>): void
设置同步范围标签,使用callback异步回调。
此接口能力在HarmonyOS 3.1Beta1暂不支持。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
localLabels | string[] | 是 | 表示本地设备的同步标签。 |
remoteSupportLabels | string[] | 是 | 表示要同步数据的设备的同步标签。 |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
setSyncRange8+
setSyncRange(localLabels: string[], remoteSupportLabels: string[]): Promise<void>
设置同步范围标签,使用Promise异步回调。
此接口能力在HarmonyOS 3.1Beta1暂不支持。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
localLabels | string[] | 是 | 表示本地设备的同步标签。 |
remoteSupportLabels | string[] | 是 | 表示要同步数据的设备的同步标签。 |
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
SubscribeType
订阅类型枚举。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
名称 | 值 | 说明 |
SUBSCRIBE_TYPE_LOCAL | 0 | 表示订阅本地数据变更。 |
SUBSCRIBE_TYPE_REMOTE | 1 | 表示订阅远端数据变更。 |
SUBSCRIBE_TYPE_ALL | 2 | 表示订阅远端和本地数据变更。 |
ChangeNotification
数据变更时通知的对象,包括数据插入的数据、更新的数据、删除的数据和设备ID。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
名称 | 类型 | 必填 | 说明 |
insertEntries | Entry[] | 是 | 数据添加记录。 |
updateEntries | Entry[] | 是 | 数据更新记录。 |
deleteEntries | Entry[] | 是 | 数据删除记录。 |
deviceId | string | 是 | 设备ID,此处为设备UUID。 |
Entry
存储在数据库中的键值对。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
名称 | 类型 | 必填 | 说明 |
key | string | 是 | 键值。 |
value | Value | 是 | 值对象。 |
Value
存储在数据库中的值对象。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
名称 | 类型 | 必填 | 说明 |
type | 是 | 值类型。 | |
value | Uint8Array | string | number | boolean | 是 | 值。 |
ValueType
数据类型枚举。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
名称 | 值 | 说明 |
STRING | 0 | 表示值类型为字符串。 |
INTEGER | 1 | 表示值类型为整数。 |
FLOAT | 2 | 表示值类型为浮点数。 |
BYTE_ARRAY | 3 | 表示值类型为字节数组。 |
BOOLEAN | 4 | 表示值类型为布尔值。 |
DOUBLE | 5 | 表示值类型为双浮点数。 |
SingleKVStore
单版本数据库,继承自KVStore数据库,提供查询数据和同步数据的方法。
单版本数据库,不对数据所属设备进行区分,不同设备使用相同键写入数据会互相覆盖。比如,可以使用单版本数据库实现个人日历、联系人数据在不同设备间的数据同步。
在调用SingleKVStore的方法前,需要先通过getKVStore构建一个SingleKVStore实例。
get
get(key: string, callback: AsyncCallback<Uint8Array | string | boolean | number>): void
获取指定键的值,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
key | string | 是 | 要查询数据的key,不能为空且长度不大于MAX_KEY_LENGTH。 |
callback | AsyncCallback<Uint8Array | string | boolean | number> | 是 | 回调函数。返回获取查询的值。 |
示例:
get
get(key: string): Promise<Uint8Array | string | boolean | number>
获取指定键的值,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
key | string | 是 | 要查询数据的key,不能为空且长度不大于MAX_KEY_LENGTH。 |
返回值:
类型 | 说明 |
Promise<Uint8Array | string | boolean | number> | Promise对象。返回获取查询的值。 |
示例:
getEntries8+
getEntries(keyPrefix: string, callback: AsyncCallback<Entry[]>): void
获取匹配指定键前缀的所有键值对,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
keyPrefix | string | 是 | 表示要匹配的键前缀。 |
callback | AsyncCallback<Entry[]> | 是 | 回调函数。返回匹配指定前缀的键值对列表。 |
示例:
getEntries8+
getEntries(keyPrefix: string): Promise<Entry[]>
获取匹配指定键前缀的所有键值对,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
keyPrefix | string | 是 | 表示要匹配的键前缀。 |
返回值:
类型 | 说明 |
Promise<Entry[]> | Promise对象。返回匹配指定前缀的键值对列表。 |
示例:
getEntries8+
getEntries(query: Query, callback: AsyncCallback<Entry[]>): void
获取与指定Query对象匹配的键值对列表,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
query | Query | 是 | 表示要匹配的键前缀。 |
callback | AsyncCallback<Entry[]> | 是 | 回调函数。返回与指定Query对象匹配的键值对列表。 |
示例:
getEntries8+
getEntries(query: Query): Promise<Entry[]>
获取与指定Query对象匹配的键值对列表,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
query | Query | 是 | 表示查询对象。 |
返回值:
类型 | 说明 |
Promise<Entry[]> | Promise对象。返回与指定Query对象匹配的键值对列表。 |
示例:
getResultSet8+
getResultSet(keyPrefix: string, callback: AsyncCallback<KvStoreResultSet>): void
从KvStore数据库中获取具有指定前缀的结果集,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
keyPrefix | string | 是 | 表示要匹配的键前缀。 |
callback | AsyncCallback<KvStoreResultSet> | 是 | 回调函数。返回具有指定前缀的结果集。 |
示例:
getResultSet8+
getResultSet(keyPrefix: string): Promise<KvStoreResultSet>
从KVStore数据库中获取具有指定前缀的结果集,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
keyPrefix | string | 是 | 表示要匹配的键前缀。 |
返回值:
类型 | 说明 |
Promise<KvStoreResultSet> | Promise对象。返回具有指定前缀的结果集。 |
示例:
getResultSet8+
getResultSet(query: Query, callback: AsyncCallback<KvStoreResultSet>): void
获取与指定Query对象匹配的KvStoreResultSet对象,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
query | Query | 是 | 表示查询对象。 |
callback | AsyncCallback<KvStoreResultSet> | 是 | 回调函数,获取与指定Query对象匹配的KvStoreResultSet对象。 |
示例:
getResultSet8+
getResultSet(query: Query): Promise<KvStoreResultSet>
获取与指定Query对象匹配的KvStoreResultSet对象,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
query | Query | 是 | 表示查询对象。 |
返回值:
类型 | 说明 |
Promise<KvStoreResultSet> | Promise对象。获取与指定Query对象匹配的KvStoreResultSet对象。 |
示例:
closeResultSet8+
closeResultSet(resultSet: KvStoreResultSet, callback: AsyncCallback<void>): void
关闭由SingleKvStore.getResultSet返回的KvStoreResultSet对象,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
resultSet | 是 | 表示要关闭的KvStoreResultSet对象。 | |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
closeResultSet8+
closeResultSet(resultSet: KvStoreResultSet): Promise<void>
关闭由SingleKvStore.getResultSet返回的KvStoreResultSet对象,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
resultSet | 是 | 表示要关闭的KvStoreResultSet对象。 |
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
getResultSize8+
getResultSize(query: Query, callback: AsyncCallback<number>): void
获取与指定Query对象匹配的结果数,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
query | Query | 是 | 表示查询对象。 |
callback | AsyncCallback<number> | 是 | 回调函数。返回与指定Query对象匹配的结果数。 |
示例:
getResultSize8+
getResultSize(query: Query): Promise<number>
获取与指定Query对象匹配的结果数,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
query | Query | 是 | 表示查询对象。 |
返回值:
类型 | 说明 |
Promise<number> | Promise对象。获取与指定Query对象匹配的结果数。 |
示例:
removeDeviceData8+
removeDeviceData(deviceId: string, callback: AsyncCallback<void>): void
删除指定设备的数据,使用callback异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
deviceId | string | 是 | 表示要删除设备的名称。 |
callback | AsyncCallback<void> | 是 | 回调函数。 |
示例:
removeDeviceData8+
removeDeviceData(deviceId: string): Promise<void>
删除指定设备的数据,使用Promise异步回调。
系统能力: SystemCapability.DistributedDataManager.KVStore.Core
参数:
参数名 | 类型 | 必填 | 说明 |
deviceId | string | 是 | 表示要删除设备的名称。 |
返回值:
类型 | 说明 |
Promise<void> | 无返回结果的Promise对象。 |
示例:
