自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

學(xué)習(xí)筆記—基于JS/ets的輕量級存儲

系統(tǒng)
今天就給大家分享我的JS/ets的輕量級存儲的學(xué)習(xí)筆記,類似于Java的輕量級偏好數(shù)據(jù)庫,所以我喜歡稱它為JS/ets的輕量級偏好數(shù)據(jù)庫,如果此稱呼有問題的話,希望各位多多指教,與各位開發(fā)者們一起交流學(xué)習(xí)

[[440150]]

想了解更多內(nèi)容,請?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

前言

數(shù)據(jù)存儲對于應(yīng)用開發(fā)是必不可少的一環(huán),今天就給大家分享我的JS/ets的輕量級存儲的學(xué)習(xí)筆記O(∩_∩)O,類似于Java的輕量級偏好數(shù)據(jù)庫,所以我喜歡稱它為JS/ets的輕量級偏好數(shù)據(jù)庫,如果此稱呼有問題的話,希望各位多多指教,與各位開發(fā)者們一起交流學(xué)習(xí)||ヽ( ̄▽ ̄)ノミ|Ю

輕量級存儲為應(yīng)用提供key-value鍵值型的文件數(shù)據(jù)處理能力,支持應(yīng)用對數(shù)據(jù)進(jìn)行輕量級存儲及查詢。數(shù)據(jù)存儲形式為鍵值對,鍵的類型為字符串型,值的存儲數(shù)據(jù)類型包括數(shù)字型、字符型、布爾型。要注意的是,該模塊接口從API version 6開始支持的哦~

效果圖

【木棉花】學(xué)習(xí)筆記——基于JS/ets的輕量級存儲-鴻蒙HarmonyOS技術(shù)社區(qū)

正文

1. 創(chuàng)建一個(gè)Empty eTS Ability應(yīng)用

DevEco Studio下載安裝成功后,打開DevEco Studio,點(diǎn)擊左上角的File,點(diǎn)擊New,再選擇New Project,選擇Empty Ability選項(xiàng),點(diǎn)擊Next按鈕。

【木棉花】學(xué)習(xí)筆記——基于JS/ets的輕量級存儲-鴻蒙HarmonyOS技術(shù)社區(qū)

將文件命名為Storage(文件名不能出現(xiàn)中文或者特殊字符,否則將無法成功創(chuàng)建項(xiàng)目文件),Project Type勾選Application,選擇保存路徑,Language勾選eTS,選擇API7,設(shè)備勾選Phone,最后點(diǎn)擊Finish按鈕。

【木棉花】學(xué)習(xí)筆記——基于JS/ets的輕量級存儲-鴻蒙HarmonyOS技術(shù)社區(qū)

2. 導(dǎo)入模塊

基于JS/ets的輕量級存儲是需要用到dataStorage的,來自于’@ohos.data.storage’。

  1. import dataStorage from '@ohos.data.storage' 

3. 通過數(shù)據(jù)存儲路徑創(chuàng)建Storage

目前應(yīng)用程序內(nèi)部數(shù)據(jù)存儲路徑必須為‘/date/date/文件名’,這一點(diǎn)必須牢牢記住,否則就會無法進(jìn)行輕量級存儲了。

定義好應(yīng)用程序內(nèi)部數(shù)據(jù)存儲路徑后,通過dataStorage.getStorageSync讀取指定文件,將數(shù)據(jù)加載到Storage實(shí)例,用于數(shù)據(jù)操作。

  1. const STORAGE_PATH = '/data/data/mystorage'//應(yīng)用程序內(nèi)部數(shù)據(jù)存儲路徑 
  2. var storage//定義Storage實(shí)例 
  3. storage = dataStorage.getStorageSync(STORAGE_PATH)//創(chuàng)建Storage實(shí)例 

4. 檢查Storage實(shí)例是否包含鍵值的存儲

hasSync可用于檢查存儲對象是否包含名為給定key的存儲,并返回參數(shù)類型為boolean的參數(shù),為參數(shù)為true表示存在,false表示不存在。

  1. const STORAGE_KEY = 'MY_STORAGE_KEY'//定義key 
  2. @State isExist: boolean = false 
  3. this.isExist = storage.hasSync(STORAGE_KEY)//檢查存儲對象是否包含鍵值的存儲 

5. 寫入數(shù)據(jù)并實(shí)例持久化

寫入數(shù)據(jù)可通過putSync,必須先獲取指定文件對應(yīng)的Storage實(shí)例,然后借助putSync將數(shù)據(jù)寫入Storage實(shí)例中。

實(shí)例持久化數(shù)據(jù)可通過flushSync,將當(dāng)前storage對象中的修改保存到當(dāng)前的storage,并同步存儲到文件中。但要值得注意的是,目前模擬器對這一功能兼容的不完善,無法持久化的,如果后臺把程序殺死,數(shù)據(jù)一樣會消失的。

  1. var value = 0//定義value 
  2. storage.putSync(STORAGE_KEY, value)//寫入數(shù)據(jù) 
  3. storage.flushSync()//實(shí)例持久化數(shù)據(jù) 

6. 獲取數(shù)據(jù)

getSync為獲取鍵對應(yīng)的值,如果值為null或者非默認(rèn)值類型,返回默認(rèn)數(shù)據(jù)。

  1. @State Value: number = 0 
  2. this.Value = storage.getSync(STORAGE_KEY, -1)//獲取key對應(yīng)的數(shù)據(jù),如果不存在則返回默認(rèn)數(shù)據(jù)(-1) 

7. 刪除數(shù)據(jù)

deleteSync為從存儲對象中刪除名為給定key的存儲。

clearSync則為清除此存儲對象中的所有存儲。

  1. storage.deleteSync(STORAGE_KEY)//刪除key對應(yīng)的數(shù)據(jù) 
  2. //store.clearSync()//刪除所有數(shù)據(jù) 

8. 刪除Storage實(shí)例

dataStorage.deleteStorageSync為從內(nèi)存中移除指定文件對應(yīng)的Storage單實(shí)例,并刪除指定文件及其備份文件、損壞文件。

dataStorage.removeStorageFromCacheSync則為從內(nèi)存中移除指定文件對應(yīng)的Storage單實(shí)例。

  1. storage = dataStorage.deleteStorageSync(STORAGE_PATH)//刪除Storage實(shí)例并刪除指定文件及其備份文件、損壞文件 
  2. //storage = dataStorage.removeStorageFromCacheSync(STORAGE_PATH)//僅刪除Storage實(shí)例 

完整源碼

index.ets:

  1. import dataStorage from '@ohos.data.storage';//導(dǎo)入模塊 
  2. const STORAGE_PATH = '/data/data/mystorage'//應(yīng)用程序內(nèi)部數(shù)據(jù)存儲路徑 
  3. const STORAGE_KEY = 'MY_STORAGE_KEY'//定義key 
  4. var storage//定義Storage實(shí)例 
  5. var value = 0//定義value 
  6.  
  7. @Entry 
  8. @Component 
  9. struct Index { 
  10.   @State Value: number = 0 
  11.   @State isExist: boolean = false 
  12.  
  13.   build() { 
  14.     Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { 
  15.       Button('創(chuàng)建輕量級數(shù)據(jù)庫\ngetStorageSync'
  16.         .height(80) 
  17.         .width(330) 
  18.         .fontSize(30) 
  19.         .margin(10) 
  20.         .onClick(() => { 
  21.           storage = dataStorage.getStorageSync(STORAGE_PATH)//創(chuàng)建Storage實(shí)例 
  22.         }) 
  23.       Button('刪除輕量級數(shù)據(jù)庫\ndeleteStorageSync'
  24.         .height(80) 
  25.         .width(330) 
  26.         .fontSize(30) 
  27.         .margin(10) 
  28.         .onClick(() => { 
  29.           storage = dataStorage.deleteStorageSync(STORAGE_PATH)//刪除Storage實(shí)例并刪除指定文件及其備份文件、損壞文件 
  30.           //storage = dataStorage.removeStorageFromCacheSync(STORAGE_PATH)//僅刪除Storage實(shí)例 
  31.         }) 
  32.       Button('寫入數(shù)據(jù)(value加1)\nputSync'
  33.         .height(80) 
  34.         .width(330) 
  35.         .fontSize(30) 
  36.         .margin(10) 
  37.         .onClick(() => { 
  38.           value++ 
  39.           storage.putSync(STORAGE_KEY, value)//寫入數(shù)據(jù) 
  40.           storage.flushSync()//實(shí)例持久化數(shù)據(jù) 
  41.         }) 
  42.       Button('刪除數(shù)據(jù)\ndeleteSync'
  43.         .height(80) 
  44.         .width(330) 
  45.         .fontSize(30) 
  46.         .margin(10) 
  47.         .onClick(() => { 
  48.           storage.deleteSync(STORAGE_KEY)//刪除key對應(yīng)的數(shù)據(jù) 
  49.           //store.clearSync()//刪除所有數(shù)據(jù) 
  50.         }) 
  51.       Button('檢查鍵是否存在\nhasSync:' + (this.isExist == true ? 'true' : 'false')) 
  52.         .height(80) 
  53.         .width(330) 
  54.         .fontSize(30) 
  55.         .margin(10) 
  56.         .onClick(() => { 
  57.           this.isExist = storage.hasSync(STORAGE_KEY)//檢查存儲對象是否包含鍵值的存儲 
  58.         }) 
  59.       Button('讀取數(shù)據(jù)\ngetSync:Value=' + this.Value) 
  60.         .height(80) 
  61.         .width(330) 
  62.         .fontSize(30) 
  63.         .margin(10) 
  64.         .onClick(() => { 
  65.           this.Value = storage.getSync(STORAGE_KEY, -1)//獲取key對應(yīng)的數(shù)據(jù),如果不存在則返回默認(rèn)數(shù)據(jù)(-1) 
  66.         }) 
  67.     } 
  68.     .width('100%'
  69.     .height('100%'
  70.   } 

文章相關(guān)附件可以點(diǎn)擊下面的原文鏈接前往下載

https://harmonyos.51cto.com/resource/1577

想了解更多內(nèi)容,請?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2020-11-11 12:13:59

JS

2023-06-27 16:42:18

Tinygrad深度學(xué)習(xí)工具

2011-03-02 10:03:44

SaturnJSJS

2023-11-26 09:06:46

2022-06-06 22:23:26

Tina工具Markdown

2023-12-04 08:24:23

2022-05-12 08:58:03

開源日志查詢日志可視化

2024-12-23 06:10:00

RustRigAI Agent

2009-07-14 18:05:28

輕量級Swing組件

2009-07-17 14:38:51

輕量級Swing組件

2022-07-15 16:39:19

PythonWhoosh工具

2016-03-31 15:25:09

2022-12-29 09:49:06

輕量級架構(gòu)決策

2022-01-26 15:23:03

ArkUI開發(fā)鴻蒙

2023-08-09 08:01:38

場景Redis接口

2009-09-11 08:26:49

Linux系統(tǒng)CRUX 2.6Linux

2021-04-14 13:32:50

Redis輕量級分布式

2020-06-19 15:38:08

分析工具GoatCounter開發(fā)

2025-01-03 09:17:26

JavaSpringBoot

2019-05-07 14:42:03

深度學(xué)習(xí)編程人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號