harmony-utils之KvUtil,键值型数据库工具类

简介: harmony-utils之KvUtil是鸿蒙系统中用于操作键值型数据库的工具类,提供包括添加、获取、删除、批量操作及备份恢复等功能,简化数据存储与管理。

harmony-utils之KvUtil,键值型数据库工具类

harmony-utils 简介与说明


harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
picker_utils 是harmony-utils拆分出来的一个子库,包含PickerUtil、PhotoHelper、ScanUtil。

下载安装
ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils

  //全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    AppUtil.init(this.context);
  }

API方法与使用


put 添加指定类型的键值对到数据库
KvUtil.put("name", "张三叁");
KvUtil.put("id", 10018);
KvUtil.put("sex", RandomUtil.getRandomBoolean());
KvUtil.put("info", RandomUtil.getRandomUint8Array(8));
get 获取指定键的值
 let kv1 = await KvUtil.get("name");
getString 获取指定键的值,string类型
 let kv2 = await KvUtil.getString('name');
getNumber 获取指定键的值,number类型
 let kv3 = await KvUtil.getNumber("id");
getBoolean 获取指定键的值,boolean类型
 let kv4 = await KvUtil.getBoolean('sex');
getUint8Array 获取指定键的值,uint8Array类型
 let kv5 = await KvUtil.getUint8Array('info');
delete 从数据库中删除指定键值的数据
KvUtil.delete("name");
ToastUtil.showToast('删除缓存成功');
putBatch 批量插入键值对到SingleKVStore数据库中
let entries: distributedKVStore.Entry[] = [];
for (let i = 0; i < 10; i++) {
  let key = 'batch_test_string_key';
  let entry: distributedKVStore.Entry = {
    key: key + i,
    value: {
      type: distributedKVStore.ValueType.STRING,
      value: 'batch_test_string_value'
    }
  }
  entries.push(entry);
}
KvUtil.putBatch(entries).then(() => {
  ToastUtil.showToast('批量插入成功');
}).catch((err: BusinessError) => {
  ToastUtil.showToast('批量插入异常!');
});
deleteBatch 批量删除SingleKVStore数据库中的键值对
let keys = ["batch_test_string_key0","batch_test_string_key1","batch_test_string_key2","batch_test_string_key3"];
KvUtil.deleteBatch(keys).then(() => {
  ToastUtil.showToast('批量删除成功');
}).catch((err: BusinessError) => {
  ToastUtil.showToast('批量删除异常!');
});
getEntries 获取匹配指定键前缀的所有键值对
let keyPrefix = "batch_test_string_key";
KvUtil.getEntries(keyPrefix).then((entries: distributedKVStore.Entry[]) => {
  Utils.showSheetText(JSON.stringify(entries, null, 2))
}).catch((err: BusinessError) => {
  ToastUtil.showToast(`异常信息:${err.message}`);
});
backup 以指定名称备份数据库
let backupFile = "BK001";
KvUtil.backup(backupFile, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to backup.code is ${err.code},message is ${err.message} `);
  } else {
    console.info(`Succeeded in backupping data`);
  }
});
deleteBackup 根据指定名称删除备份文件
let files = ["BK001", "BK002"];
KvUtil.deleteBackup(files, (err: BusinessError, data: [string, number][]) => {
  if (err) {
    console.error(`Failed to delete Backup.code is ${err.code},message is ${err.message}`);
  } else {
    console.info(`Succeed in deleting Backup.data=${data}`);
  }
});
restore 从指定的数据库文件恢复数据库
let backupFile = "BK001";
KvUtil.restore(backupFile, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to backup.code is ${err.code},message is ${err.message} `);
  } else {
    console.info(`Succeeded in backupping data`);
  }
});
onDataChange 订阅指定类型的数据变更通知
  private callBack: Callback<distributedKVStore.ChangeNotification> = (change) => {
    let pStr = JSON.stringify(change, null, 2);
    LogUtil.info(pStr);
  }

  KvUtil.onDataChange(distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_ALL, callBack);
offDataChange 取消订阅数据变更通知
KvUtil.offDataChange(callBack);
ToastUtil.showToast('取消订阅数据变更通知');

创作不易,请给童长老点赞👍


https://github.com/787107497/harmony-utils
https://gitee.com/tongyuyan/harmony-utils
OpenHarmony三方库

目录
相关文章
|
XML Java Android开发
Android Studio App开发之翻页视图ViewPager的讲解及实战(附源码 包括翻页视图和翻页标签栏)
Android Studio App开发之翻页视图ViewPager的讲解及实战(附源码 包括翻页视图和翻页标签栏)
1892 0
|
2月前
|
人工智能 安全 Java
MCP 扩展机制:OpenCode 如何通过 Model Context Protocol 接入外部工具
MCP(Model Context Protocol)是连接AI编程助手与外部工具的开放协议,如数据库、API、Jira、Salesforce等。它通过标准化“插头”式接口,支持本地/远程服务器接入,实现安全、灵活、按需调用。OpenCode已深度集成MCP,助力AI真正落地业务场景。
|
人工智能 安全 Nacos
Nacos 3.0:微服务与AI融合的技术新纪元
Nacos 3.0:微服务与AI融合的技术新纪元
567 83
|
安全 API 数据安全/隐私保护
深入理解 PUT 和 POST 的区别
本文深入解析了HTTP请求中PUT与POST方法的区别及其应用场景。POST为非幂等方法,常用于创建资源或提交数据,每次请求可能改变服务器状态;PUT是幂等的,主要用于更新或完全替换特定资源,重复请求不会产生额外影响。文章通过对比两者特性、操作语义及实际使用场景,帮助开发者在RESTful API设计中做出更合理的选择,提升系统效率与可维护性。
3012 1
|
JSON JavaScript 前端开发
HarmonyOS NEXT实战:接入和使用axios
HarmonyOS Next 实战中,使用 Axios 可实现高效网络请求。Axios 是基于 Promise 的库,支持 GET、POST 等方法,并具备拦截器、自动 JSON 转换等功能。适配 OpenHarmony 后,仍保留其原有特性。需安装 @ohos/axios 并配置网络权限,可创建工具类统一管理请求与响应。
682 0
|
安全 网络协议 Linux
telnet在windows和linux上的使用方法
Telnet是一个简单且强大的网络工具,广泛用于远程管理和网络诊断。尽管存在安全风险,但在受控环境中,Telnet仍然是一个非常有用的工具。通过本文的介绍,您应该能够在Windows和Linux系统上安装并使用Telnet进行各种网络操作。
4056 18
|
人工智能 自然语言处理 计算机视觉
华为鸿蒙自己家的“AI”编辑器插件用起来到底怎么样?
编辑器AI插件如Codegeex、通义灵码等已问世,但通用性较强而不专精。华为推出的CodeGenie专为鸿蒙开发设计,集成在DevEco 5.0.0以上版本中,提供代码补全、生成等功能,尤其擅长处理鸿蒙相关问题,极大降低了鸿蒙开发的门槛。安装后需重启,支持自然语言生成代码,提升了开发效率。
1432 13
Visual Studio 简易打包工具的安装与使用
Visual Studio 简易打包工具的安装与使用
|
JSON C++ 数据格式
如何在 Visual Studio Code 中使用 Prettier 格式化代码
如何在 Visual Studio Code 中使用 Prettier 格式化代码
2930 0
|
存储 缓存 JSON
10款好用的开源 HarmonyOS 工具库
HarmonyOS NEXT 正式版即将发布,你在学习鸿蒙的过程还有哪些好用的工具库吗,欢迎分享给V 哥,关注威哥爱编程,一起学习鸿蒙开发。
1094 4