成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

學習筆記—基于JS/ets的輕量級存儲

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

[[440150]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

前言

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

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

效果圖

【木棉花】學習筆記——基于JS/ets的輕量級存儲-鴻蒙HarmonyOS技術社區

正文

1. 創建一個Empty eTS Ability應用

DevEco Studio下載安裝成功后,打開DevEco Studio,點擊左上角的File,點擊New,再選擇New Project,選擇Empty Ability選項,點擊Next按鈕。

【木棉花】學習筆記——基于JS/ets的輕量級存儲-鴻蒙HarmonyOS技術社區

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

【木棉花】學習筆記——基于JS/ets的輕量級存儲-鴻蒙HarmonyOS技術社區

2. 導入模塊

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

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

3. 通過數據存儲路徑創建Storage

目前應用程序內部數據存儲路徑必須為‘/date/date/文件名’,這一點必須牢牢記住,否則就會無法進行輕量級存儲了。

定義好應用程序內部數據存儲路徑后,通過dataStorage.getStorageSync讀取指定文件,將數據加載到Storage實例,用于數據操作。

  1. const STORAGE_PATH = '/data/data/mystorage'//應用程序內部數據存儲路徑 
  2. var storage//定義Storage實例 
  3. storage = dataStorage.getStorageSync(STORAGE_PATH)//創建Storage實例 

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

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

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

5. 寫入數據并實例持久化

寫入數據可通過putSync,必須先獲取指定文件對應的Storage實例,然后借助putSync將數據寫入Storage實例中。

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

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

6. 獲取數據

getSync為獲取鍵對應的值,如果值為null或者非默認值類型,返回默認數據。

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

7. 刪除數據

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

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

  1. storage.deleteSync(STORAGE_KEY)//刪除key對應的數據 
  2. //store.clearSync()//刪除所有數據 

8. 刪除Storage實例

dataStorage.deleteStorageSync為從內存中移除指定文件對應的Storage單實例,并刪除指定文件及其備份文件、損壞文件。

dataStorage.removeStorageFromCacheSync則為從內存中移除指定文件對應的Storage單實例。

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

完整源碼

index.ets:

  1. import dataStorage from '@ohos.data.storage';//導入模塊 
  2. const STORAGE_PATH = '/data/data/mystorage'//應用程序內部數據存儲路徑 
  3. const STORAGE_KEY = 'MY_STORAGE_KEY'//定義key 
  4. var storage//定義Storage實例 
  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('創建輕量級數據庫\ngetStorageSync'
  16.         .height(80) 
  17.         .width(330) 
  18.         .fontSize(30) 
  19.         .margin(10) 
  20.         .onClick(() => { 
  21.           storage = dataStorage.getStorageSync(STORAGE_PATH)//創建Storage實例 
  22.         }) 
  23.       Button('刪除輕量級數據庫\ndeleteStorageSync'
  24.         .height(80) 
  25.         .width(330) 
  26.         .fontSize(30) 
  27.         .margin(10) 
  28.         .onClick(() => { 
  29.           storage = dataStorage.deleteStorageSync(STORAGE_PATH)//刪除Storage實例并刪除指定文件及其備份文件、損壞文件 
  30.           //storage = dataStorage.removeStorageFromCacheSync(STORAGE_PATH)//僅刪除Storage實例 
  31.         }) 
  32.       Button('寫入數據(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)//寫入數據 
  40.           storage.flushSync()//實例持久化數據 
  41.         }) 
  42.       Button('刪除數據\ndeleteSync'
  43.         .height(80) 
  44.         .width(330) 
  45.         .fontSize(30) 
  46.         .margin(10) 
  47.         .onClick(() => { 
  48.           storage.deleteSync(STORAGE_KEY)//刪除key對應的數據 
  49.           //store.clearSync()//刪除所有數據 
  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('讀取數據\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對應的數據,如果不存在則返回默認數據(-1) 
  66.         }) 
  67.     } 
  68.     .width('100%'
  69.     .height('100%'
  70.   } 

文章相關附件可以點擊下面的原文鏈接前往下載

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

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2023-06-27 16:42:18

Tinygrad深度學習工具

2020-11-11 12:13:59

JS

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

輕量級架構決策

2022-01-26 15:23:03

ArkUI開發鴻蒙

2009-09-11 08:26:49

Linux系統CRUX 2.6Linux

2023-08-09 08:01:38

場景Redis接口

2020-06-19 15:38:08

分析工具GoatCounter開發

2021-04-14 13:32:50

Redis輕量級分布式

2016-10-14 16:35:39

2019-05-07 14:42:03

深度學習編程人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.日韩在线 | 福利视频网站 | 久久新视频 | 精一区二区| 欧美日韩国产一区二区三区 | 欧美激情视频一区二区三区在线播放 | 免费看啪啪网站 | 毛片一级片 | 欧美精品一区三区 | 高清视频一区 | 日韩精品一区二区三区中文字幕 | 农村真人裸体丰满少妇毛片 | 在线黄色影院 | 精品国产免费人成在线观看 | 国产一区二区久久 | 欧美精品一区二区三区四区 | 国产精品一区二区无线 | 久久99深爱久久99精品 | 最新超碰 | 欧美激情一区二区 | 99久久精品国产一区二区三区 | 国产91视频一区二区 | 男人天堂视频在线观看 | 欧美精品久久久久 | 在线观看av中文字幕 | www.日韩av.com| 亚洲在线一区 | 一二三四在线视频观看社区 | 一区二区三区视频在线观看 | 亚洲国产一区在线 | 91在线视频观看免费 | 日本不卡视频 | 国产在线一区二区三区 | 国产欧美一区二区三区在线播放 | 男人天堂社区 | 成人精品一区二区三区中文字幕 | 日本久久视频 | 国产精品久久久久久久久免费相片 | 羞羞视频在线观看免费观看 | 天天想天天干 | 久久久精品网 |