更多内容请访问:鸿蒙科技社区https://harmonyos.51cto.com前言数据存储是应用开发中必不可少的一个环节,今天分享给大家我的JS/ets轻量级存储学习笔记O(∩_∩)O,类似于Java的轻量级偏好数据库,所以我喜欢叫它JS/ets的轻量级偏好数据库,如果这个名字有问题,我希望大家多多指教,和开发者交流学习||ヽ( ̄▽ ̄)ノミ|Ю轻量级存储为应用提供key-valuekey-value文件数据处理能力,支持应用对数据的轻量级存储和查询。数据存储形式为键值对,键的类型为字符串类型,值的存储数据类型包括数字类型、字符类型和布尔类型。需要注意的是这个模块的接口从API版本6开始支持~Renderingtext1.创建一个EmptyeTSAbility应用DevEcoStudio下载安装成功后,打开DevEcoStudio,点击左上角的File,点击New,然后选择NewProject,选择EmptyAbility选项,点击Next按钮。将文件命名为Storage(文件名不能出现中文或特殊字符,否则无法创建工程文件),ProjectType选择Application,选择保存路径,Language选择eTS,选择API7,选择Phonefor设备,最后点击完成按钮。2.导入模块JS/ets-based轻量级存储需要dataStorage,来自'@ohos.data.storage'。importdataStoragefrom'@ohos.data.storage'3。通过数据存储路径创建Storage。目前,应用内部数据存储路径必须是'/date/date/filename',这一点一定要牢记,否则无法进行轻量化存储。定义应用程序内部数据存储路径后,通过dataStorage.getStorageSync读取指定文件,将数据加载到Storage实例进行数据操作。constSTORAGE_PATH='/data/data/mystorage'//应用程序内部数据存储路径varstorage//定义Storage实例storage=dataStorage.getStorageSync(STORAGE_PATH)//创建Storage实例4.检查Storage实例是否包含key-valuestoragehasSyncisavailable用于检查存储对象是否包含名为给定key的storage,返回一个参数,参数类型为boolean,参数存在为true,不存在为false。constSTORAGE_KEY='MY_STORAGE_KEY'//定义key@StateisExist:boolean=falsethis.isExist=storage.hasSync(STORAGE_KEY)//检查存储对象是否包含key-value存储5.写入数据,通过putSync持久化写入的数据,必须先获取指定文件对应的Storage实例,然后使用putSync将数据写入Storage实例。实例持久化数据可以通过flushSync将当前存储对象中的修改保存到当前存储中,同步存储到文件中。但需要注意的是,目前的模拟器并不完全兼容该功能,无法持久化。如果程序在后台被杀死,数据也会消失。varvalue=0//定义valuestorage.putSync(STORAGE_KEY,value)//写入数据storage.flushSync()//实例化持久化数据6.获取数据getSync是获取key对应的value,如果value为null或non-default值类型,返回默认数据。@StateValue:number=0this.Value=storage.getSync(STORAGE_KEY,-1)//获取key对应的数据,不存在则返回默认数据(-1)7.删除数据deleteSync是删除给定键的存储对象存储的名称。clearSync清除此存储对象中的所有存储。storage.deleteSync(STORAGE_KEY)//删除key对应的数据//store.clearSync()//删除所有数据8.删除Storage实例dataStorage.deleteStorageSync是从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。dataStorage.removeStorageFromCacheSync从内存中移除指定文件对应的Storage单实例。storage=dataStorage.deleteStorageSync(STORAGE_PATH)//删除Storage实例并删除指定文件及其备份文件,损坏的文件//storage=dataStorage.removeStorageFromCacheSync(STORAGE_PATH)//只删除Storage实例完整源码index.ets:importdataStoragefrom'@ohos.data.storage';//导入模块constSTORAGE_PATH='/data/data/mystorage'//应用程序内部数据存储路径constSTORAGE_KEY='MY_STORAGE_KEY'//定义keyvarstorage//定义Storage实例varvalue=0//定义值@Entry@ComponentstructIndex{@StateValue:number=0@StateisExist:boolean=falsebuild(){Flex({direction:FlexDirection.Column,alignItems:ItemAlign.Center,justifyContent:FlexAlign.Center}){Button('创建一个轻量级数据库\ngetStorageSync').height(80).width(330).fontSize(30).margin(10).onClick(()=>{storage=dataStorage.getStorageSync(STORAGE_PATH)//创建Storage实例})Button('删除轻量级数据库\ndeleteStorageSync').height(80).width(330).fontSize(30).margin(10).onClick(()=>{storage=dataStorage.deleteStorageSync(STORAGE_PATH)//删除Storage实例并删除指定文件及其备份文件,损坏的文件//storage=dataStorage.removeStorageFromCacheSync(STORAGE_PATH)//只删除Storage实例})卜tton('写入数据(值加1)\nputSync').height(80).width(330).fontSize(30).margin(10).onClick(()=>{value++storage.putSync(STORAGE_KEY,value)//写数据storage.flushSync()//实例持久化数据})Button('删除数据\ndeleteSync').height(80).width(330).fontSize(30).margin(10).onClick(()=>{storage.deleteSync(STORAGE_KEY)//删除key对应的数据//store.clearSync()//删除所有数据})Button('检查key是否存在\nhasSync:'+(this.isExist==true?'true':'false')).height(80).width(330).fontSize(30).margin(10).onClick(()=>{this.isExist=storage.hasSync(STORAGE_KEY)//检查存储对象是否包含key-value存储})Button('Readdata\ngetSync:Value='+this.Value).height(80).width(330).fontSize(30).margin(10).onClick(()=>{this.Value=storage.getSync(STORAGE_KEY,-1)//获取key对应的数据,不存在则返回默认数据(-1)})}.width('100%').height('100%')}}文章相关附件可点击或下载原文链接如下https://harmonyos.51cto.com/resource/1577更多信息请访问:与华为官方Harmonyos共同打造的技术社区https://harmonyos.51cto.com
