当前位置: 首页 > news >正文

【Harmony OS】数据存储

目录

数据存储概述

首选项数据存储

关系型数据库


数据存储概述

数据存储 是为了解决应用数据持久化问题,使得数据能够存储在外存中,达到保存或共享目的。
鸿蒙应用数据存储包括 本地数据存储 分布式数据存储
本地数据存储 为应用提供了单设备上数据存储和访问能力。
HarmonyOS支持文件存储,并在此基础上提供了基于文件的首选项数据存储。HarmonyOS底层采用SQLite数据库管理系统作为持久化存储引擎,为应用提供关系型数据存储。
分布式数据存储 支持跨设备之间的数据共享和同步等。
鸿蒙分布式数据服务 为应用程序提供了不同设备间数据库数据分布存储能力。方便应用程序数据在不同终端 设备间的无缝衔接 。分布式数据存储是鸿蒙系统的特色之一。

首选项数据存储

首选项数据存储 也称为偏好数据存储或轻量级数据存储,适合于少量的数据存储,如:登录账户密码、配置信息等。
首选项数据存储具有访问速度快,存取效率高的特点。
首选项数据存储数据最终是存储在操作系统的文件中的,系统提供对底层文件读写的封装,并把底层文件映射成
Preferences实例对象。
首选项数据库存储的访问机制,每一个底层文件对应一个Preferences实例,应用可以借助Preferences提供的接口方法,进行读写数据
首选项数据存储 采用的是 键值对(Key-Value) 结构,同 一个键 在存储文件中只会对应 一个值
Key为String类型 ,且 长度为不超过 1024个字节
值的类型: number | string | boolean |
Array<number> | Array<string> | Array<boolean>
| Uint8Array | object | bigint
数据量应该是轻量级的,建议存储的数据 不超过一万条
不支持在多进程场景下使用

关系型数据库

关系型数据库 (Relational Database,RDB)是基于 关系模型 组织管理数据的数据库。关系型数据库中一般包含若干个 二维的数据表 ,每个表中以行和列的形式存储数据。
鸿蒙关系型数据存储 底层使用SQLite 作为持久化存储引擎,支持SQLite的所有数据库特性,包括事务、索引、视图、触发器、外键、参数化查询和预编译SQL语句等。
鸿蒙关系型数据存储框架 实现了对底层SQLite数据进一步封装,对上层提供通用、完善且高效操作接口,包括一系列的 增、删、改、查 等。

// 定义配置
const options: distributedKVStore.Options = {
createIfMissing: true,
encr ypt: false,
backup: false,
autoSync: false,
// kvStoreType不填时,默认创建多设备协同数据库
kvStoreType: 
distributedKVStore.KVStoreType.SINGLE_VERSION,
// 多设备协同数据库:kvStoreType: 
distributedKVStore.KVStoreType.DEVICE_COLLABORATION,
securityLevel: distributedKVStore.SecurityLevel.S1
};
kvManager?.getKVStore<distributedKVStore.SingleKVStore> ('
storeId', options,
(err, store: distributedKVStore.SingleKVStore ) => {
if (err ) {
console.error (`Failed to get KVStore: 
Code:$ {err.code },message:${err.message }`);
return;
}
console.info('Succeeded in getting KVStore.');
this.kvStore = store;
// 请确保获取到键值数据库实例后,再进行相关数据操作
// put、get、delete……方法
});

http://www.xdnf.cn/news/782587.html

相关文章:

  • VScode自动添加指定内容
  • NLP学习路线图(二十一): 词向量可视化与分析
  • 大语言模型评测体系全解析(上篇):基础框架与综合评测平台
  • 虚荣虚无的对立统一
  • 电阻电容的选型
  • html基础01:前端基础知识学习
  • webstrom中git插件勾选提交部分文件时却出现提交全部问题怎么解决
  • SpringBoot3.2新特性:JdbcClient
  • Trae CN IDE自动生成注释功能测试与效率提升全解析
  • 在linux系统上搭建git服务器(ssh协议)
  • RTC实时时钟DS1338Z-33/PT7C433833WEX国产替代FRTC1338S
  • 【Kotlin】高阶函数Lambda内联函数
  • Elasticsearch | 如何将修改已有的索引字段类型并迁移数据
  • MongoDB账号密码笔记
  • mybatis打印完整的SQL,p6spy
  • 应用智能化转型—MCP原理分析
  • 6-2 MySQL 数据结构选择的合理性
  • MCP:让AI工具协作变得像聊天一样简单 [特殊字符]
  • 数据库密码加密
  • Go Modules 详解 -《Go语言实战指南》
  • Cursor快速梳理ipynb文件Prompt
  • 群晖 NAS 如何帮助培训学校解决文件管理难题
  • python计算股票年化收益率、波动率、夏普比率、VaR
  • Hadoop 3.x 伪分布式 8088端口无法访问问题处理
  • Playwright 多浏览器并行测试与数据隔离实战指南
  • 【云计算】基础篇,含云测试
  • 解决 idea提示`SQL dialect is not configured` 问题
  • redis数据过期策略
  • Jpom:Java开发者的一站式自动化运维平台详解
  • Matlab实现LSTM-SVM回归预测,作者:机器学习之心