aspcms 网站栏目管理,中企动力全球邮箱,网页新建站点,中国住房建设部网站首页前言 鸿蒙当中数据持久化存储#xff0c;为我们提供了多种的实现方式#xff0c;比如用户首选项方式#xff0c;关系型数据库方式#xff0c;键值型数据库方式#xff0c;文件存储方式等等#xff0c;对于数据量比较的小的#xff0c;我们直接选择轻量级的用户首选项方式…前言 鸿蒙当中数据持久化存储为我们提供了多种的实现方式比如用户首选项方式关系型数据库方式键值型数据库方式文件存储方式等等对于数据量比较的小的我们直接选择轻量级的用户首选项方式即可而对于数据量比较大的情况下直接可以使用数据库而对于相对来说比较大的数据我们就可以使用键值型数据库方式它是一种介于用户首选项和关系型数据库之间的数据存储方式。 键值型数据库使用起来是非常的简单的从字面意思就能知道它是以键值对的形式进行数据存储和获取的和用户首选项有着类似的使用方式但是键值型数据库方式有着自身的限制性因素第一个就是针对每条记录Key的长度≤896 ByteValue的长度4 MB而对于单版本数据库每条记录Key的长度≤1 KBValue的长度4 MB每个应用最多支持同时打开16个键值型分布式数据库最后一个就是键值型数据库事件回调方法中不允许进行阻塞操作比如修改UI组件。 键值数据库常用对象如下 KVManager分布式键值数据库管理实例用于获取数据库的相关信息。
KVStoreResultSet提供获取数据库结果集的相关方法包括查询和移动数据读取位置等。
Query使用谓词表示数据库查询提供创建Query实例、查询数据库中的数据和添加谓词的方法。
SingleKVStore单版本分布式键值数据库不对数据所属设备进行区分提供查询数据和同步数据的方法。
DeviceKVStore设备协同数据库继承自SingleKVStore以设备维度对数据进行区分提供查询数据和同步数据的方法。 具体的数据存储这里先不介绍了大家可以直接查看官方文档即可这里是介绍封装之后的键值数据库的具体用法。 
快速依赖 方式一在Terminal窗口中执行如下命令安装三方包DevEco Studio会自动在工程的oh-package.json5中自动添加三方包依赖。 建议在使用的模块路径下进行执行命令。 ohpm install abner/datastore 方式二在工程的oh-package.json5中设置三方包依赖配置示例如下 dependencies: { abner/datastore: ^1.0.3} 代码调用 
1、初始化 建议在AbilityStage里进行初始化如果你要使用多个文件实例进行存储可以传递第二个参数。 DataKvUtil.getInstance().init(this.context, com.abner.tool) 相关属性介绍 属性  类型  概述  context  Context  上下文  bundleName  string  调用方的包名  option  distributedKVStore.Options  可选参数数据库配置信息  
option相关参数 属性  类型  必填  说明  createIfMissing  boolean  否  当数据库文件不存在时是否创建数据库默认为true即创建。  encrypt  boolean  否  设置数据库文件是否加密封装默认为true即不加密。  backup  boolean  否  设置数据库文件是否备份封装默认为true即备份。  autoSync  boolean  否  设置数据库文件是否自动同步。封装默认为true即手动同步。  kvStoreType  KVStoreType  否  设置要创建的数据库类型默认为DEVICE_COLLABORATION即多设备协同数据库。  securityLevel  SecurityLevel  是  设置数据库安全级别。  schema  Schema  否  设置定义存储在数据库中的值默认为undefined即不使用Schema。  
KVStoreType 
KVStoreType 分布式键值数据库类型枚举。DEVICE_COLLABORATION表示多设备协同数据库。数据库特点 数据以设备的维度管理不存在冲突支持按照设备的维度查询数据。SINGLE_VERSION表示单版本数据库。数据库特点 数据不分设备设备之间修改相同的key会覆盖。 
SecurityLevel 
数据库的安全级别枚举。S1表示数据库的安全级别为低级别数据的泄露、篡改、破坏、销毁可能会给个人或组织导致有限的不利影响。例如性别、国籍用户申请记录等。S2表示数据库的安全级别为中级别数据的泄露、篡改、破坏、销毁可能会给个人或组织导致严重的不利影响。例如个人详细通信地址姓名昵称等。S3表示数据库的安全级别为高级别数据的泄露、篡改、破坏、销毁可能会给个人或组织导致严峻的不利影响。例如个人实时精确定位信息、运动轨迹等。S4表示数据库的安全级别为关键级别业界法律法规中定义的特殊数据类型涉及个人的最私密领域的信息或者一旦泄露、篡改、破坏、销毁可能会给个人或组织造成重大的不利影响数据。例如政治观点、宗教、和哲学信仰、工会成员资格、基因数据、生物信息、健康和性生活状况、性取向等或设备认证鉴权、个人的信用卡等财务信息。 
2、存储数据 DataKvUtil.getInstance().put(key, value) 监听是否存储成功 DataKvUtil.getInstance().put(key, value, (isSuccess:boolean)  {}) 监听是否存储成功和失败 DataKvUtil.getInstance().put(key, value, (isSuccess:boolean, err:BusinessError)  {//当isSuccess 为falseerr为报错信息
}) 使用Promise异步回调 let pPromise  DataKvUtil.getInstance().putPromise(key, value)
//自己通过Promise 判断成功和失败 3、获取数据 DataKvUtil.getInstance().get(key, (data)  {}) 监听失败 DataKvUtil.getInstance().get(key, (data)  {}, (err:BusinessError)  {}) 使用Promise异步回调 let pPromise  DataKvUtil.getInstance().getPromise(key)
//自己通过Promise 获取数据或判断失败 4、删除数据 DataKvUtil.getInstance().delete(key) 监听是否删除成功 DataKvUtil.getInstance().delete(key, (isSuccess: boolean)  {//isSuccess判断是否删除成功
}) 监听是否删除失败 DataKvUtil.getInstance().delete(key, (isSuccess: boolean, err?: BusinessError)  {//isSuccess为false err为错误信息
}) 使用Promise异步回调 let pPromise  DataKvUtil.getInstance().deletePromise(key)
//自己通过Promise判断成功或失败 5、修改数据 修改同添加一致数据会覆盖原有的key 6、获取默认的StoreId DataKvUtil.getInstance().getStoreId() 7、删除指定的分布式键值数据库 DataKvUtil.getInstance().deleteKVStore(storeId) 监听是否删除成功 DataKvUtil.getInstance().deleteKVStore(storeId, (isSuccess: boolean)  {//isSuccess判断是否删除成功
}) 监听是否删除失败 DataKvUtil.getInstance().deleteKVStore(storeId, (isSuccess: boolean, err?: BusinessError)  {//isSuccess为false err为错误信息
}) 8、创建一个新的并获取分布式键值数据库 默认会有一个如果您打算再新建一个可以调用此方法 DataKvUtil.getInstance().createKVStore(storeId) 9、新的数据库执行增删改查 先设置自己创建的数据库也就是第7中的storeId DataKvUtil.getInstance().setKVStore(storeId) //和之前保持一致执行各种的方法即可。