介绍
键值型数据库存储 键值对 形式的数据
应用场景
当需要存储的数据 没有复杂的关系模型,比如:
- 存储商品名称、对应价格
- 存储员工工号、今日是否已出勤
约束限制
-
设备协同数据库,针对每条记录,
Key的长度≤896 Byte
,Value的长度<4 MB
。 -
单版本数据库,针对每条记录,
Key的长度≤1 KB
,Value的长度<4 MB
。 -
每个应用程序最多支持同时打开16个键值型分布式数据库。
-
键值型数据库事件回调方法中不允许进行阻塞操作,例如修改UI组件。
开发步骤
-
创建 KVManager 管理器,用于管理数据库
-
通过 KVManager 创建数据库,本文创建 SingleKVStore 类型数据库
-
保存数据
-
根据key获取value
-
根据key删除数据
-
通过 KVManager 关闭数据库
导入模块
import { distributedKVStore } from '@kit.ArkData';
创建 KVManager 管理器
创建 KVManager
数据库管理器,用于管理数据库,如:创建数据库、关闭数据库
createKVManager(config: KVManagerConfig): KVManager
参数:
- config:类型:KVManagerConfig,必填,提供KVManager实例的配置信息,包括调用方的包名(不能为空)和用户信息。
**返回值:**KVManager对象
例子
public initKVManager(bundleName:string):void{
const kvManagerConfig: distributedKVStore.KVManagerConfig = {
context: getContext(),
bundleName: bundleName,
}
try {
this.kvManager = distributedKVStore.createKVManager(kvManagerConfig)
} catch (e) {
let error = e as BusinessError;
console.error(TAG,`创建失败,错误码:${error.code},信息:${error.message}`);
}
}
KVManagerConfig
提供KVManager实例的配置信息,包括调用方的包名和应用的上下文。
包含以下属性:
-
context:类型:BaseContext,必填,应用的上下文,一般为
getContext()
-
bundleName:类型:string,必填,包名,详见链接
SingleKVStore单版本数据库
单版本数据库,数据不分设备,设备之间修改相同的Key会覆盖
创建数据库
通过 KVManager
对象创建数据库
接口1
通过指定options和storeId,创建并获取分布式键值数据库,使用callback异步回调。
getKVStore<T>(storeId: string, options: Options, callback: AsyncCallback<T>): void
参数:
-
storeId:类型:
string
,必填,数据库唯一标识符,长度不大于 128
,且只能包含 字母、数字 或 下划线_
。 -
options:类型:
Options
,必填,创建分布式键值实例的配置信息。 -
callback:类型:
AsyncCallback<T>
,必填,回调函数。返回创建的分布式键值数据库实例(根据kvStoreType的不同,可以创建SingleKVStore实例和DeviceKVStore实例)。 </