精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Rdb創建的Data_Ability的數據操作過程

OpenHarmony技術社區 ? 來源:HarmonyOS技術社區 ? 作者:HarmonyOS技術社區 ? 2022-04-12 08:56 ? 次閱讀

首先介紹幾個基本概念和方法

①關系型數據庫

基于關系模型來管理數據的數據庫,以行和列的形式存儲數據。(可以簡單理解成一個 excel 表格的形式)

②謂詞

數據庫中用來代表數據實體的性質、特征或者數據實體之間關系的詞項,主要用來定義數據庫的操作條件。(謂詞:屬于函數的一種,但其返回值是真值(true/false/unknown))

③結果集

指用戶查詢之后的結果集合,有多種方法可以對數據進行訪問。

④SQLite 數據庫

它是一個開源的輕型的數據庫。

⑤場景介紹

關系型數據庫是在 SQLite 基礎上實現的本地數據操作機制,提供給用戶無需編寫原生 SQL 語句就能進行數據增刪改查的方法,同時也支持原生 SQL 語句操作。

再看幾個Data中相關生命周期功能介紹

如下圖:

基于Rdb創建的Data_Ability的數據操作過程

運作機制

基于Rdb創建的Data_Ability的數據操作過程

從上圖可以知:Data 模板的 Ability 是基于 Rdb 封裝的,Rdb 是基于 SQLite 數據庫,一個開源的輕型的數據庫,所以Data_Ability 高效便捷的為我們提供了一套工具去管理其自身和其他應用存儲數據的訪問。 下面逐步分析基于 Rdb 創建的一個 Data_Ability 的數據操作過程:
//=====================導入模塊部分=========================
//導入DataAbility謂詞相關模塊
importdataAbilityfrom'@ohos.data.dataability'
//導入rdb關系數據庫模塊
importdataRdbfrom'@ohos.data.rdb'
//=====================定義變量部分=========================
//定義數據庫表名book
constTABLE_NAME='book'
//與此RDB存儲相關的數據庫配置。. encryptKey:為數據庫設置的加密密鑰
constSTORE_CONFIG={name:'book.db',encryptKey:newUint8Array([])}
//定義SQL_CREATE_TABLE關鍵字參數,下面執行參數會用到
constSQL_CREATE_TABLE='CREATETABLEIFNOTEXISTSbook(idINTEGERPRIMARYKEYAUTOINCREMENT,nameTEXTNOTNULL,ageINTEGER,introductionTEXTNOTNULL)'
//定義一個變量進行儲存數據庫返回內容,避免多次調用執行,節省性能
letrdbStore:any=undefined
//測試用打log用的
constTAG='DataAbility.data'
//=====================創建數據庫=========================
exportdefault{
// onInitialized 在Ability初始化調用,通過此回調方法執行rdb等初始化操作。
onInitialized(abilityInfo){
console.info('DataAbilityonInitialized,abilityInfo='+abilityInfo.bundleName)
//getRdbStore()獲得一個相關的RdbStore,操作關系型數據庫,用戶可以根據自己的需求配置RdbStore的參數,然后通過RdbStore調用相關接口可以執行相關的數據操作,結果以callback形式返回。
dataRdb.getRdbStore(STORE_CONFIG,1,(err,store)=>{
console.info('[data]getRdbStoreThen')
//執行包含指定參數但不返回值的SQL語句,結果以Promise形式返回。
store.executeSql(SQL_CREATE_TABLE,[])
//把獲得的數據庫存入本地變量,防止后面多次操作讀取創建
rdbStore=store
});
},
//=====================數據庫操作方法=========================
//url:通信使用的URI
//callback:自定義回調函數名如果操作成功,則返回ResultSet對象。
//valueBucket:指示數據庫中要更新的數據行。鍵值對與數據庫表的列名相關聯
//TABLE_NAME:指定的目標表名。
//insert:向數據中插入一條數據。 callbacke方式調用:
insert(uri,valueBucket,callback){
console.info(TAG+'insertstart')
rdbStore.insert(TABLE_NAME,valueBucket,callback)
},


//url:通信使用的URI
//valueBucket:指示數據庫中要更新的數據行。鍵值對與數據庫表的列名相關聯
//callback:指定callback回調函數。如果操作成功,則返回ResultSet對象。
// batchInsert:向數據庫中插入多條數據。
batchInsert(uri,valueBuckets,callback){
console.info(TAG+'batchinsertstart')
//循環遍歷
for(leti=0;iconsole.info(TAG+'batchinserti='+i)
if(i1){
//最終還是用到的insert方法
rdbStore.insert(TABLE_NAME,valueBuckets[i],(num:number)=>{
console.info(TAG+'batchinsertret='+num)
})
}else{
rdbStore.insert(TABLE_NAME,valueBuckets[i],callback)
}
}
},



//url:通信使用的URI
//predicates:表示rdbPredicates的實例對象指定的查詢條件。
//columns:表示要查詢的列。如果值為空,則查詢應用于所有列。
//callback:指定callback回調函數。如果操作成功,則返回ResultSet對象。
//query:查詢數據庫中的數據。
query(uri,columns,predicates,callback){
console.info(TAG+'querystart')
letrdbPredicates=dataAbility.createRdbPredicates(TABLE_NAME,predicates)
rdbStore.query(rdbPredicates,columns,callback)
},

//url:通信使用的URI
//valueBucket:指示數據庫中要更新的數據行。鍵值對與數據庫表的列名相關聯
//predicates:表示要插入到表中的數據行。
//callback:指定callback回調函數。如果操作成功,則返回ResultSet對象。
// update:更新數據庫中的數據。
update(uri,valueBucket,predicates,callback){
console.info(TAG+'updatestart')
letrdbPredicates=dataAbility.createRdbPredicates(TABLE_NAME,predicates)
rdbStore.update(valueBucket,rdbPredicates,callback)
},



//url:通信使用的URI
//delete:刪除一條或多條數據。
//predicates:表示要刪除表中的數據行。
//callback:指定callback回調函數。如果操作成功,則返回ResultSet對象。
delete(uri,predicates,callback){
console.info(TAG+'deletestart')
letrdbPredicates=dataAbility.createRdbPredicates(TABLE_NAME,predicates)
rdbStore.delete(rdbPredicates,callback)
}
};

文章有錯誤地方還請大佬一定指出糾正!

原文標題:鴻蒙Data Ability關系數據庫使用

文章出處:【微信公眾號:HarmonyOS技術社區】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3763

    瀏覽量

    64274
  • Data
    +關注

    關注

    0

    文章

    62

    瀏覽量

    38236
  • 模型
    +關注

    關注

    1

    文章

    3171

    瀏覽量

    48711

原文標題:鴻蒙Data Ability關系數據庫使用

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    手動移液器的使用操作過程

    手動移液器的使用操作過程  手動移液器常見于臨床試驗和實驗室試驗中,不同類型的移液器操作過程也有所不同,下面具體的解析一下。  一、使用方法:  1.根據所需取液量選擇相應移液器及吸液嘴。  2.
    發表于 11-20 11:51

    電路板手工焊接操作過程

    `哪位大神可以分享電路板手工焊接的操作過程嗎?`
    發表于 02-29 15:14

    求ATmega168看門狗復位的具體操作過程

    ATmega168看門狗復位的具體操作過程
    發表于 11-18 07:17

    千萬注意!纖薄器件在操作過程中損壞不得

    千萬注意!纖薄器件在操作過程中損壞不得
    發表于 04-29 06:29

    怎樣去操作FTS-300光纜普查儀?在操作過程中有哪些常見問題?

    FTS-300光纜普查儀的測試原理FTS-300光纜普查儀的功能應用范圍怎樣去操作FTS-300光纜普查儀?在操作過程中有哪些常見問題?
    發表于 05-06 09:42

    C語言的平臺操作過程

    兩種學習C語言的平臺操作過程,在后續內容學習中需要熟練應用。這兩種方式分別為:keil c51編程軟件+硬件調試平臺臺,,keilkeil c51c51編程軟件編程軟件+ proteusproteus軟件...
    發表于 07-20 06:19

    如何去實現STM32串口通訊的操作過程

    STM32串口通訊有哪幾種方式呢?如何去實現STM32串口通訊的操作過程呢?
    發表于 12-07 07:28

    STM32內部FLASH操作過程

    一般說STM32內部FLASH就是指主存儲器區域寫內部FLASH操作過程解鎖在對FLASH寫數據之前,需要先給解鎖,因為芯片為了防止誤操作修改應用程序,復位之后會給控制寄存器FLASH_CR上鎖(1
    發表于 12-09 06:37

    GPIO輸入完成按鍵掃描的操作過程是怎樣的

    GPIO輸入完成按鍵掃描的操作過程是怎樣的
    發表于 02-08 07:29

    RT-Thread操作系統從開機到關機的操作過程是怎樣的?

    RT-Thread操作系統從開機到關機的操作過程是怎樣的?
    發表于 02-15 07:43

    基于Rdb創建的一個Data_Ability數據操作過程

    一套工具去管理其自身和其他應用存儲數據的訪問下面逐步分析基于Rdb創建的一個Data_Ability數據
    發表于 03-29 13:50

    心電監護儀操作過程

    心電監護儀是醫院實用的精密醫學儀器,能同時監護病人的動態心電圖形、呼吸、體溫、等生理參數。這里提供了心電監護儀操作過程使用維護。
    發表于 12-21 17:36 ?2.1w次閱讀
    心電監護儀<b class='flag-5'>操作過程</b>

    FPGA應用中部分重配置的操作過程

    Partial Reconfiguration(部分重配置)在現在的FPGA應用中越來越常見,我們這次的教程以Project模式為例來說明部分重配置的操作過程
    的頭像 發表于 07-05 15:28 ?3623次閱讀
    FPGA應用中部分重配置的<b class='flag-5'>操作過程</b>

    在線快速修復終聚釜攪拌器軸磨損的現場操作過程

    在線快速修復終聚釜攪拌器軸磨損的現場操作過程
    發表于 12-06 15:17 ?5次下載

    磐石測控:深圳扭轉試驗機操作過程是什么樣的?

    磐石測控:深圳扭轉試驗機操作過程是什么樣的?
    的頭像 發表于 10-20 11:17 ?661次閱讀
    磐石測控:深圳扭轉試驗機<b class='flag-5'>操作過程</b>是什么樣的?