手机网站如何排版图片无法显示wordpress

张小明 2026/1/9 21:10:52
手机网站如何排版,图片无法显示wordpress,橙云网站建设,河南微网站建设鸿蒙学习实战之路-数据持久化键值型数据库KV-Store全攻略 最近好多朋友问我#xff1a;“西兰花啊#xff0c;鸿蒙应用里除了Preferences#xff0c;还有什么靠谱的存储方式吗#xff1f;我要存的东西有点多#xff0c;但又不想用复杂的关系型数据库#xff0c;咋整“西兰花啊鸿蒙应用里除了Preferences还有什么靠谱的存储方式吗我要存的东西有点多但又不想用复杂的关系型数据库咋整” 害这问题可问对人了今天这篇我就手把手带你搞定鸿蒙里的键值型数据库(KV-Store)从基础概念到实战代码全程用大白话讲明白一、什么是应用数据持久化应用数据持久化是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象存储介质上的数据形态可能是文本、数据库、二进制文件等。HarmonyOS标准系统支持典型的存储数据形态包括用户首选项Preferences用于保存应用的配置信息。数据以文本形式保存在设备中应用使用时会将文本中的数据全量加载到内存中访问速度快、效率高但不适合需要存储大量数据的场景。键值型数据库KV-Store一种非关系型数据库其数据以键值对的形式进行组织、索引和存储其中键作为唯一标识符。适合数据关系和业务关系较少的业务数据存储同时因其在分布式场景中降低了解决数据库版本兼容问题的复杂度和数据同步过程中冲突解决的复杂度而被广泛使用。相比于关系型数据库更容易做到跨设备跨版本兼容。关系型数据库RelationalStore一种关系型数据库以行和列的形式存储数据广泛用于关系型数据处理支持增、删、改、查等接口开发者也可以运行自定义SQL语句满足复杂业务场景。此外提供了向量数据库能力支持向量数据间的相似度计算适用于推荐场景、相似图像检索以及自然语言处理等。今天咱们重点聊聊键值型数据库KV-Store这玩意儿就像咱们家里的储物盒每个盒子都有个标签键里面装着对应的东西值找起来方便又高效二、KV-Store适合存什么KV-Store特别适合存储那些没有复杂关系的数据比如商品名称及对应价格员工工号及出勤状态简单结构的配置信息用户的收藏列表其他键值对应的数据就像咱们厨房里的调料瓶每个瓶子键都装着不同的调料值一目了然拿取方便三、注意事项要牢记使用KV-Store时有一些家规得遵守不然容易出问题限制项具体说明设备协同数据库Key长度≤896 ByteValue长度4 MB单版本数据库Key长度≤1 KBValue长度4 MB并发限制每个应用最多同时打开16个键值型分布式数据库事件回调不允许进行阻塞操作如修改UI组件西兰花警告别存太大的东西每个值的大小不能超过4MB就像储物盒不能装超过它容量的东西一样四、核心接口速览KV-Store提供了一套简单好用的接口咱们来快速认识一下接口名称描述createKVManager创建KVManager实例用来管理数据库对象就像创建储物间管理员getKVStore创建并获取指定类型的KVStore数据库就像在储物间里开辟一个新的储物区put添加键值对到数据库就像把东西放进标好标签的盒子里get获取指定键的值就像根据标签找到对应的盒子并取出东西delete删除指定键值的数据就像扔掉不需要的东西closeKVStore关闭指定数据库就像用完储物区后锁上门deleteKVStore删除指定数据库就像拆掉整个储物区所有异步接口都支持callback和Promise两种形式咱们可以根据自己的习惯选择五、实战代码走起来光说不练假把式咱们直接上代码1. 创建KVManager实例首先得创建一个KVManager实例它就像是咱们的储物间管理员负责管理所有的KVStore数据库。Stage模型import{distributedKVStore}fromkit.ArkData;import{UIAbility}fromkit.AbilityKit;import{BusinessError}fromkit.BasicServicesKit;// 定义KVManager实例和相关配置letkvManager:distributedKVStore.KVManager|undefinedundefined;letappId:stringcom.example.datamanagertest;// 你的应用IDletstoreId:stringmyKVStore;// 数据库IDexportdefaultclassEntryAbilityextendsUIAbility{onCreate(){// 配置KVManagerconstkvManagerConfig:distributedKVStore.KVManagerConfig{context:this.context,// 应用上下文bundleName:appId,// 应用包名};try{// 创建KVManager实例kvManagerdistributedKVStore.createKVManager(kvManagerConfig);console.info(成功创建KVManager实例);}catch(e){leterroreasBusinessError;console.error(创建KVManager失败:${error.code},${error.message});}}}FA模型import{distributedKVStore}fromkit.ArkData;import{featureAbility}fromkit.AbilityKit;import{BusinessError}fromkit.BasicServicesKit;// 定义KVManager实例和相关配置letkvManager:distributedKVStore.KVManager|undefinedundefined;letappId:stringcom.example.datamanagertest;// 你的应用IDletstoreId:stringmyKVStore;// 数据库IDletcontextfeatureAbility.getContext();// 获取上下文// 配置KVManagerconstkvManagerConfig:distributedKVStore.KVManagerConfig{context:context,bundleName:appId,};try{// 创建KVManager实例kvManagerdistributedKVStore.createKVManager(kvManagerConfig);console.info(成功创建KVManager实例);}catch(e){leterroreasBusinessError;console.error(创建KVManager失败:${error.code},${error.message});}2. 获取KVStore数据库有了管理员接下来咱们需要创建一个具体的KVStore数据库就像在储物间里开辟一个专门的储物区。letkvStore:distributedKVStore.SingleKVStore|undefinedundefined;try{// 创建Schema可选用于定义数据结构// 定义id字段letchild1newdistributedKVStore.FieldNode(id);child1.typedistributedKVStore.ValueType.INTEGER;// 整数类型child1.nullablefalse;// 不能为空child1.default1;// 默认值// 定义name字段letchild2newdistributedKVStore.FieldNode(name);child2.typedistributedKVStore.ValueType.STRING;// 字符串类型child2.nullablefalse;// 不能为空child2.defaultzhangsan;// 默认值// 创建Schema实例letschemanewdistributedKVStore.Schema();schema.root.appendChild(child1);// 添加id字段schema.root.appendChild(child2);// 添加name字段schema.indexes[$.id,$.name];// 创建索引提高查询效率schema.mode1;// 1表示STRICT模式0表示COMPATIBLE模式schema.skip0;// 配置KVStoreconstoptions:distributedKVStore.Options{createIfMissing:true,// 如果不存在则创建encrypt:false,// 不加密backup:false,// 不备份autoSync:false,// 不自动同步kvStoreType:distributedKVStore.KVStoreType.SINGLE_VERSION,// 单版本数据库// kvStoreType: distributedKVStore.KVStoreType.DEVICE_COLLABORATION, // 多设备协同数据库schema:schema,// 使用上面定义的SchemasecurityLevel:distributedKVStore.SecurityLevel.S3,// 安全级别};// 获取KVStore实例kvManager.getKVStoredistributedKVStore.SingleKVStore(storeId,options,(err,store){if(err){console.error(获取KVStore失败:${err.code},${err.message});return;}console.info(成功获取KVStore实例);kvStorestore;});}catch(e){leterroreasBusinessError;console.error(发生意外错误:${error.code},${error.message});}西兰花小贴士Schema是可选的但使用它可以让你的数据结构更规范查询效率更高哦3. 订阅数据变化想实时知道数据库里的数据有没有变化可以订阅数据变更事件try{kvStore.on(dataChange,distributedKVStore.SubscribeType.SUBSCRIBE_TYPE_ALL,(data){console.info(数据发生变化:${data});// 注意这里不能做阻塞操作比如修改UI组件});}catch(e){leterroreasBusinessError;console.error(订阅数据变化失败:${error.code},${error.message});}4. 插入数据现在可以往KVStore里存数据了就像把东西放进标好标签的盒子里// 定义测试数据constKEY_TEST_STRING_ELEMENTkey_test_string;constVALUE_TEST_STRING_ELEMENT{id:0, name:lisi};try{// 插入数据kvStore.put(KEY_TEST_STRING_ELEMENT,VALUE_TEST_STRING_ELEMENT,(err){if(err!undefined){console.error(插入数据失败:${err.code},${err.message});return;}console.info(成功插入数据);});}catch(e){leterroreasBusinessError;console.error(发生意外错误:${error.code},${error.message});}5. 查询数据存进去的数据得能读出来才行就像根据标签找到对应的盒子并取出东西try{// 查询数据kvStore.get(KEY_TEST_STRING_ELEMENT,(err,data){if(err!undefined){console.error(查询数据失败:${err.code},${err.message});return;}console.info(成功查询数据:${data});});}catch(e){leterroreasBusinessError;console.error(查询数据失败:${error.code},${error.message});}6. 删除数据不需要的数据可以删掉就像扔掉不需要的东西try{// 删除数据kvStore.delete(KEY_TEST_STRING_ELEMENT,(err){if(err!undefined){console.error(删除数据失败:${err.code},${err.message});return;}console.info(成功删除数据);});}catch(e){leterroreasBusinessError;console.error(发生意外错误:${error.code},${error.message});}7. 关闭数据库用完数据库后记得关闭它就像用完储物区后锁上门try{// 关闭数据库kvManager.closeKVStore(appId,storeId,(err:BusinessError){if(err){console.error(关闭数据库失败:${err.code},${err.message});return;}console.info(成功关闭数据库);kvStoreundefined;// 清空实例引用});}catch(e){leterroreasBusinessError;console.error(发生意外错误:${error.code},${error.message});}8. 删除数据库如果不想用某个数据库了可以删掉它就像拆掉整个储物区try{// 删除数据库kvManager.deleteKVStore(appId,storeId,(err:BusinessError){if(err){console.error(删除数据库失败:${err.code},${err.message});return;}console.info(成功删除数据库);kvStoreundefined;// 清空实例引用});}catch(e){leterroreasBusinessError;console.error(发生意外错误:${error.code},${error.message});}六、总结一下今天咱们一起学习了鸿蒙里的键值型数据库(KV-Store)从基础概念到实战代码相信你已经掌握了KV-Store的适用场景适合存储无复杂关系模型的数据KV-Store的约束限制键值大小、并发数量等KV-Store的核心接口创建、获取、增删改查等操作实战代码从创建实例到数据操作的完整流程西兰花小贴士如果你的数据量不大结构简单KV-Store是个不错的选择如果需要处理复杂的关系型数据那还是得用关系型数据库(RelationalStore) 预告《只会KV-StoreHarmonyOS关系型数据库RelationalStore全攻略》 推荐资料官方文档通过键值型数据库实现数据持久化完整示例实现键值型数据库读写功能我是盐焗西兰花不教理论只给你能跑的代码和避坑指南。下期见
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

盘锦网站建设 盘锦建站推广 盘锦建站动漫网站建设策划书

基于Wan2.2-T2V-A14B的AI导演系统原型设计思路 在影视与广告内容生产领域,一个长期存在的矛盾始终难以调和:创意的爆发性增长与制作流程的缓慢迭代。一部30秒的品牌短片,从脚本到成片,动辄需要数周时间、数十人协作;而…

张小明 2026/1/7 21:42:52 网站建设

外网浏览网站做特效的网站

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿 paperzz - AI PPT制作https://www.paperzz.cc/aiPpt 你是否有过这样的经历:为了一份开题报告 PPT 熬到凌晨三点,改了八版配色还是觉得 “不够专业”;赶季度汇报时&…

张小明 2026/1/7 21:42:51 网站建设

服装网站设计理念长春网站建设选择星宿科技

真空干泵驱动用磁阻式同步电动机设计与特性分析 先设计一款真空干泵驱动电机,使其符合真空干泵的驱动要求,各项性能参数(如电机效率、最大转矩倍数、空载气隙磁密等)设计达标。 接着在设计好的驱动电机基础上,进行了温…

张小明 2026/1/7 21:42:50 网站建设

电子商务网站的特点职友集一家做公司点评的网站

抖音自动化终极指南:用AI智能筛选与互动,告别手动刷屏时代 【免费下载链接】Douyin-Bot 😍 Python 抖音机器人,论如何在抖音上找到漂亮小姐姐? 项目地址: https://gitcode.com/gh_mirrors/do/Douyin-Bot 还在为…

张小明 2026/1/7 21:42:54 网站建设

寿县有做网站开发的吗山东省建设人才网站

Linly-Talker在医疗问诊预处理中的创新应用 在三甲医院的候诊区,一位中年患者正对着平板电脑上的虚拟医生娓娓道来:“最近胃不舒服,吃完饭就胀……”屏幕里的数字人微微点头,眼神专注,随后温和回应:“您说的…

张小明 2026/1/9 8:01:41 网站建设

合肥地区建网站公司邯郸哪个公司做网站好

ncmdumpGUI终极教程:3步完成网易云NCM格式批量转换 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 还在为网易云音乐下载的NCM格式文件无法在其他设…

张小明 2026/1/7 21:42:55 网站建设