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

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

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

3天內不再提示

DevEco Studio端云協同之云數據庫

ITMING ? 來源:ITMING ? 作者:ITMING ? 2023-02-23 14:29 ? 次閱讀

在自定義HamronyOS啟動頁組件一文中封裝了啟動頁組件,本節將結合端云協同開發,將啟動頁需要的參數保存到云數據庫中,實現根據特定節氣顯示不同的啟動頁背景圖。

1 環境

  • DevEco Studio 3.1 Beta1(V3.1.0.200)
  • 觸覺智能IDO-EVB3568-V1開發板
  • 自定義teui組件庫
  • 端云協同開發應用創建

2 云數據庫

云數據庫(Cloud DB)是Serverless服務提供的能力之一,是AppGallery Connect平臺解決方案的一部分,是端云協同的數據庫產品,支持數據在端云、多端之間無縫同步,并為應用提供離線支持,以幫助開發者快速構建端云、多端協同應用,開發者可以聚集于應用本身業務,極大提升開發者開發效率,更多請至華為App Gallery Connect云數據庫了解。

3 端云協同開發云數據庫

DevEco Studio 3.1 Beta1提供了端云協同開發,可以通過云側CloudProgram項目創建云數據庫對象類型、存儲區、配置權限,端側引入相關的云數據庫文件即可進行云數據庫數據操作,應用開發流程如下圖所示:

3.1 云側CloudProgram工程云數據庫配置

3.1.1 創建對象類型

云數據庫采用存儲區、對象類型和對象三級結構基于對象模型的數據庫。對象類型是用于定義存儲對象的集合,不同對象類型對應的不同數據結構。

在云側CloudProgram工程clouddb目錄下clouddb目錄右鍵New > Cloud DB Object Type創建對象類型,輸入對象類型名稱,DevEco Studio會自動創建初始對象類型JSON文件。

在對象類型JSON文件中,可以配置字段、索引以及角色于權限,表3-1為數據類型JSON文件屬性簡單介紹。

表3-1 數據類型JSON文件屬性(更多描述參見官方文檔)

參數 說明
fields 數據表字段集,配置屬性參見表3-2
indexes 數據表索引,配置屬性參見表3-3
permissions 操作數據表角色及對應權限,配置屬性參見表3-4
objectTypeName 數據表名稱

表3-2 數據表字段(更多描述參見官方文檔)

參數 說明
fieldName 字段名稱
fieldType 字段數據類型 當前支持:String, Boolean, Byte, Shor, Integer, Long, Float, Double, ByteArray, Text, Date, IntAutoIncrement, LongAutoIncrement
belongPrimaryKey 字段是否為主鍵
notNull 字段值是否為空
isNeedEncrypt 字段是否需要加密
"fields": [
    {
      "belongPrimaryKey": true,
      "fieldName": "id",
      "fieldType": "Integer",
      "isNeedEncrypt": false,
      "notNull": true
    },
    {
      "belongPrimaryKey": false,
      "fieldName": "timer",
      "fieldType": "Integer",
      "isNeedEncrypt": false,
      "notNull": false
    },
    {
      "belongPrimaryKey": false,
      "fieldName": "isLogo",
      "fieldType": "Boolean",
      "isNeedEncrypt": false,
      "notNull": false
    },
    {
      "belongPrimaryKey": false,
      "fieldName": "backgroundImg",
      "fieldType": "String",
      "isNeedEncrypt": false,
      "notNull": false
    },
    {
      "belongPrimaryKey": false,
      "fieldName": "companyName",
      "fieldType": "String",
      "isNeedEncrypt": false,
      "notNull": false
    },
    {
      "belongPrimaryKey": false,
      "fieldName": "mFontColor",
      "fieldType": "String",
      "isNeedEncrypt": false,
      "notNull": false
    },
    {
      "belongPrimaryKey": false,
      "fieldName": "status",
      "fieldType": "Integer",
      "isNeedEncrypt": false,
      "notNull": false
    },
    {
      "belongPrimaryKey": false,
      "fieldName": "createUser",
      "fieldType": "Integer",
      "isNeedEncrypt": false,
      "notNull": false
    },
    {
      "belongPrimaryKey": false,
      "fieldName": "createTime",
      "fieldType": "Date",
      "isNeedEncrypt": false,
      "notNull": false
    }
  ],

表3-3 數據表索引(更多描述參見官方文檔)

參數 說明
indexName 索引名稱
indexList 索引包含的字段
"indexes": [
    {
      "indexName": "IDX_202302221057",
      "indexList": [
        {
          "fieldName": "id",
          "sortType": "DESC"
        }
      ]
    }
  ],

表3-4 操作數據表角色及權限(更多描述參見官方文檔)

參數 說明
World 所有用戶,默認最多僅可擁有Read權限
Authenticated AppGallery Connect登錄的認證用戶
Creator 數據創建用戶
Administrator 應用開發者
"permissions": [
    {
      "rights": [
        "Read"
      ],
      "role": "World"
    },
    {
      "rights": [
        "Read",
        "Upsert"
      ],
      "role": "Authenticated"
    },
    {
      "rights": [
        "Read",
        "Upsert",
        "Delete"
      ],
      "role": "Creator"
    },
    {
      "rights": [
        "Read",
        "Upsert",
        "Delete"
      ],
      "role": "Administrator"
    }
  ]

3.1.2 創建數據條目

創建完對象類型,可以通過為對象類型添加數據條目,來預置數據庫內容,支持手動創建和自動生成數據條目JSON文件。

  • 手動創建數據條目文件:在clouddb目錄下dataentry目錄右鍵New > Cloud DB Data Entry創建數據條目JSON文件,輸入數據條目名稱。
  • 自動生成數據條目文件:在對象類型JSON文件右鍵Generate Data Entry輸入數據條目自定義名稱。

無論選擇哪種創建數據條目的方法,DevEco Studio會自動初始化已配置的對象類型,并賦初始值,同時配置數據條目所在存儲區名稱,如代碼中的cloudDBZoneName,可自定義。

{
  "cloudDBZoneName": "cloudDBZoneSplash",
  "objectTypeName": "splash",
  "objects": [
    {
      "id": 1,
      "timer": 3,
      "isLogo": false,
      "backgroundImg": "https://img1.baidu.com/it/u=1884825806,3687074543&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=889",
      "companyName": "xxxx有限公司",
      "mFontColor": "#F2F2F2",
      "status": 0,
      "createUser": 1,
      "createTime": 1677035025264
    },
    {
      "id": 2,
      "timer": 3,
      "isLogo": true,
      "backgroundImg": "https://img1.baidu.com/it/u=1884825806,3687074543&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=889",
      "companyName": "xxxx有限公司",
      "mFontColor": "#F2F2F",
      "status": 1,
      "createUser": 1,
      "createTime": 1677035025264
    }
  ]
}

3.1.3 部署云數據庫

在DevEco Studio還未實現端云協同開發之前,要實現云側數據庫需要在網頁端配置。當前開發者只需要在DevEco Studio云側工程中配置好云數據庫信息后,右鍵clouddb目錄選擇Deploy Cloud DB將云數據庫需要的資源統一部署到AGC控制臺,Event Log會顯示同步進度信息。部署完成后,可在AGC控制臺查看部署的云數據庫信息。

3.2 端側Application訪問云側數據庫業務實現

使用端云協同開發,將較于之前的操作會減少如配置開發環境agconnect-services.json文件引入,該文件在創建端云協同工程時會自動初始化到工程中,在entry/src/main/resources/rawfile中;同時會自動引入相關依賴文件,如database-ohos等。

除配置文件和依賴文件之外,還需要和之前的操作相同,導出JSON格式文件和JS格式文件并添加至本地開發環境中。

3.2.1 添加對象類型文件

  • 將導出的數據類型JSON文件內容拷貝到entry/src/main/ets/services/app-schema.json中,若無該文件則創建即可。
  • 將導出的JS格式文件拷貝到entry/src/main/ets/services/目錄下。

3.2.2 云數據庫操作

該文件僅作為示例應用獲取云數據庫數據,若需要更詳細的開發者可自定義封裝,其中異常并未作處理,開發者可根據自身業務做響應的處理。

// entry/src/main/ets/services/CloudDBService.ts
// @ts-ignore
import * as schema from './app-schema.json';
import { splash } from './splash';
import {
    AGConnectCloudDB,
    CloudDBZoneConfig,
    CloudDBZone,
    CloudDBZoneQuery
} from '@hw-agconnect/database-ohos';

import { AGCRoutePolicy } from '@hw-agconnect/core-ohos';

import { getAGConnect } from './AgcConfig';

export class CloudDBService {

    private static readonly ZONE_NAME = "cloudDBZoneSplash";

    private static init(context: any): Promise

3.2.3 將云數據庫數據渲染到頁面

利用aboutToAppear()方法獲取云數據庫中的啟動頁信息。

import { CloudDBService as CloudDB } from '../services/CloudDBService';
import { SplashPage } from '@tetcl/teui';
@Entry
@Component
struct Splash {

  @State result: SplashObj = new SplashObj(5);
  @State isSkip: boolean = false;
  
  onSkipt() {
    // 跳轉頁面
  }
  
  build() {
    Column() {
      if (this.isSkip) {
        SplashPage({ mSplash: {
          timer: this.result.timer,
          isLogo: this.result.isLogo,
          backgroundImg: this.result.backgroundImg,
          companyName: this.result.companyName,
          mFontColor: this.result.mFontColor
        }, skip: this.onSkip })
      }
    }
    .width('100%')
    .height('100%')
  }
  
  aboutToAppear() {
    // 若受網絡印象獲取數據時間過長,此處可以自定義一個數據加載動畫
    CloudDB.query(getContext(this)).then(ret => {
      this.isSkip = true;
      this.result = ret;
    })
  }
}

3.3 在開發板預覽效果

審核編輯 黃宇

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

    關注

    0

    文章

    65

    瀏覽量

    4500
  • 云數據庫
    +關注

    關注

    0

    文章

    23

    瀏覽量

    1930
  • DevEco Studio
    +關注

    關注

    0

    文章

    21

    瀏覽量

    1047
  • HarmonyOS3
    +關注

    關注

    0

    文章

    37

    瀏覽量

    978
收藏 人收藏

    評論

    相關推薦

    數據庫SQL Server 2008 R2版推出OSS版本數據

    摘要: 日前,阿里數據庫SQL Server 2008 R2版開放了新的數據功能,用戶只需把本地數據庫的備份文件上傳到阿里
    發表于 01-17 11:10

    數據庫廠商都怕低價競爭?阿里說并不可懼

    摘要: 2017年Gartner發布的數據庫廠商推薦報告中首次收錄了來自中國的數據庫廠商,分別是阿里、巨杉數據庫SequoiaDB以及南大通用GBase。在這三家廠商中,巨杉
    發表于 05-11 11:02

    阿里數據庫備份DBS商業化發布,數據庫實時備份到OSS

    摘要: 數據庫備份DBS作為一款阿里產品,專注于阿里范疇數據庫的一站式保護,已于2018年5月17日正式商業化發布。數據庫備份DBS已于
    發表于 05-30 17:49

    DevEco Studio 3.1 Beta新特性知多少

    協同開發 DevEco Studio提供的一體化開發功能,支持側、
    發表于 04-23 11:06

    HarmonyOS元服務一體化開發快速入門(下)

    服務(認證服務、函數、存儲)最新版本HarmonyOS SDK,同時會自動集成一體化登錄組件的最新SDK。 ** 3. 側工程自
    發表于 06-15 15:52

    鴻蒙原生應用/元服務開發-新版本一體化模板體驗反饋

    Ability模板即可。 三、體驗 新增: 最新一體化新增“數據庫一體組件”, 版本
    發表于 12-05 14:57

    阿里數據庫MongoDB版架構及安全解讀

    12月18日,阿里100%兼容MongoDB的數據庫AliCloudDB for MongoDB宣布開放公測,基于三節點副本集的高可用框架,阿里
    發表于 10-13 11:21 ?0次下載
    阿里<b class='flag-5'>云</b><b class='flag-5'>數據庫</b>MongoDB版架構及安全解讀

    數據庫是未來的數據庫商業的成功,卻是技術的倒退

    在越來越多的會議、媒體、文章、報道上看到一種說法:“未來的數據庫數據庫的時代,數據庫廠商終將取代傳統
    的頭像 發表于 10-14 15:51 ?2111次閱讀
    <b class='flag-5'>云</b><b class='flag-5'>數據庫</b>是未來的<b class='flag-5'>數據庫</b>商業的成功,卻是技術的倒退

    數據庫和自建數據庫的區別及應用

    數據庫是指優化和部署在云端的數據庫,阿里云和騰訊都提供數據庫,
    的頭像 發表于 11-20 16:26 ?4580次閱讀
    <b class='flag-5'>云</b><b class='flag-5'>數據庫</b>和自建<b class='flag-5'>數據庫</b>的區別及應用

    騰訊數據庫生態經 騰訊數據庫生態戰略

    數據庫是最重要的基礎服務之一,已經成為服務商的核心競爭力之一,屬于兵家必爭之地。廠商要想取得成功,數據庫之爭不容有失,一個典型的例子,
    發表于 12-30 11:24 ?514次閱讀

    數據庫之戰下半場,騰訊數據庫打的更有侵略性

    文/老魚 數據庫上半場,是線上市場(公有)之爭,目前大局已定,阿里以絕對優勢領跑。如今,數據庫
    的頭像 發表于 01-10 21:50 ?1853次閱讀
    <b class='flag-5'>云</b><b class='flag-5'>數據庫</b>之戰下半場,騰訊<b class='flag-5'>云</b><b class='flag-5'>數據庫</b>打的更有侵略性

    華為數據庫-RDS for MySQL數據庫

    華為數據庫-RDS for MySQL數據庫 華為數據庫作為華為的一款
    的頭像 發表于 10-27 11:06 ?1480次閱讀

    華為數據庫\-GaussDB for MySQL數據庫

    華為數據庫-GaussDB for MySQL數據庫 GaussDB是華為自主研發的一款高性能關系型數據庫,它完全兼容了MySQL,而且
    的頭像 發表于 10-27 14:56 ?1201次閱讀

    數據庫已成趨勢,華為數據庫與傳統數據庫對比解析

    ,并不適合海量數據存儲,并且裝載的速度慢。舉個例子,當傳統索引需要重新創建,加載的性能就會大幅度下降。為了解決此類問題,華為數據庫應運而生。 與傳統數據庫不同的是,華為
    的頭像 發表于 12-27 16:52 ?1020次閱讀
    <b class='flag-5'>數據庫</b>上<b class='flag-5'>云</b>已成趨勢,華為<b class='flag-5'>云</b><b class='flag-5'>數據庫</b>與傳統<b class='flag-5'>數據庫</b>對比解析

    數據庫和普通數據庫區別?|PetaExpress云端數據庫

    數據庫和普通數據庫區別? 一、數據庫和普通數據庫的特點 1、
    的頭像 發表于 08-01 17:13 ?1070次閱讀