鸿蒙 HarmonyOS NEXT端云一体化开发-云数据库篇

一、概述

云数据库是一款基于对象模型的数据库,采用存储区、对象类型和对象三级结构。

数据模型

  • 存储区
存储区是一个独立的数据存储区域,多个数据存储区之间相互独立,每个存储区拥有完全相同的对象类型定义
--类似于关系型数据库中的database
  • 对象类型
用户定义存储对象的集合,不同的对象类型对应不同的数据结构
--类似于关系型数据库中的表
  • 对象
对象是云数据库的基本操作单元,每一个对象,都是一条完整的数据记录。
--类似于关系型数据库中的一条记录

角色和权限

角色
World所有人
Authenticated 已认证
Creator 创建者
Administrator管理者
权限:Read(查询)、upsert(增和改)、Delete(删)

二、初始化云数据库-AGC网站版本

创建存储区

步骤一:开发AGC网站,进入到我的项目中,左侧菜单选择数据库

image.png

步骤二:选择存储区》新增》输入存储区名称,点击确定后,等待进度条加载完毕

image.png
image.png

创建对象类型

步骤一:切换到数据类型并点击新增

image.png

步骤二:输入对象类型名后,点击下一步

image.png

步骤三:输入需要的字段,设置主键后,点击下一步

image.png

步骤四:添加索引并设置升序后,点击下一步

image.png

步骤五:设置数据权限(根据需要自行设置)>默认 》点击确定

image.png
image.png

创建对象数据

切换到数据并点击新增

image.png

步骤二:选择t_test对象类型,添加数据后,点击确定

image.png

步骤三(查询数据):页面选择存储区名称和对象类型后,点击查询

image.png

三、初始化云数据-本地项目版本

TODO:存储区直接使用之前创建的test

项目结构说明

对象类型存储在objecttype目录中
对象存储在datntry目录中

image.png

创建t_content对象类型

选中objecttype目录后右键>>new >> Cloud DB Object Type

image.png

输入t_content

image.png


{"objectTypeName": "t_content","fields": [{"fieldName": "id", "fieldType": "IntAutoIncrement", "notNull": true, "belongPrimaryKey": true},{"fieldName": "title", "fieldType": "String"}],"indexes": [{"indexName": "id", "indexList": [{"fieldName":"id","sortType":"ASC"}]}],"permissions": [{"role": "World", "rights": ["Read"]},{"role": "Authenticated", "rights": ["Read", "Upsert"]},{"role": "Creator", "rights": ["Read", "Upsert", "Delete"]},{"role": "Administrator", "rights": ["Read", "Upsert", "Delete"]}]
}

创建t_content对象

选中dataentry目录右键>new > cloud DB Data Entry

image.png

选择t_content

image.png

{"cloudDBZoneName": "test","objectTypeName": "t_content","objects": [{"id": 1,"title": "测试1"},{"id": 2,"title": "测试2"}]
}

更新

选中clouddb右键》Deploy Cloud DB

image.png
image.png
image.png

四、端侧调用云数据库

前提

TOOD:因为云数据库不支持使用Long类型,所以自行添加依赖

// 添加依赖"dependencies": {"@hw-agconnect/cloud": "^1.0.0","@hw-agconnect/hmcore": "^1.0.0","@hw-agconnect/auth-component": "^1.0.0","long": "5.2.1" }
// 初始化SDK
import {initialize} from  "@hw-agconnect/hmcore"
import jsonStr from "../../resources/rawfile/agconnect-services.json"async onCreate(){//   初始化try {initialize(this.context,jsonStr)}catch (e){console.error(JSON.stringify(e))}}

建立模型

TODO: 类似:数据表实体类
image.png

将生成的js文件放入到项目中

image.png

导出schema

TODO:导出选择JSON格式后,放入到项目中
image.png
image.png

初始化database并查询数据

import { Database } from '@hw-agconnect/cloud/src/main/ets/database/Database';
import cloud from '@hw-agconnect/cloud';
import info from "../../resources/rawfile/cloudFunction_2_cn.json"
import { t_test } from '../model/t_test';@Entry
@Componentstruct DataBasePage {@State message: string = 'Hello World';private database:Database |null= null// 接收数据集@State testList :t_test[] = []async aboutToAppear(): Promise<void> {// 初始化this.database= cloud.database({zoneName:'test',objectTypeInfo:info})this.testList = await this.database.collection(t_test).query().get()}build() {Column(){ForEach(this.testList,(test:t_test)=>{Row(){Text(`${test.getId()}`)Text(test.getName())}})}.width("100%").height("100%")}
}

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/386768.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一番赏小程序开发,为消费者带来更多新鲜体验

一番赏作为经典的潮玩方式&#xff0c;深受消费者的喜爱&#xff0c;一番赏还会与不同的热门IP合作&#xff0c;不断推出新的赏品&#xff0c;吸引众多粉丝。赏品的内容非常丰富&#xff0c;从手办、公仔玩具等&#xff0c;还设有隐藏款和最终赏商品&#xff0c;对玩家拥有着非…

哲学CSSCI南大核心期刊论文投稿推荐(含发表方向)

发表哲学方向的C刊论文&#xff0c;却在选刊上一直找不到合适的。本文介绍14本哲学CSSCI南大核心期刊名单&#xff0c;帮助您快速找到哲学类期刊&#xff01; 哲学类CSSCI核心期刊推荐&#xff1a; 1、逻辑学研究 发表内容方向&#xff1a;符号逻辑、非形式逻辑、逻辑与哲学、…

Synchronized的锁升级过程是怎样的?

文章目录 一、Synchronized的使用1、修饰实例方法2、修饰静态方法3、修饰代码块4、总结&#xff1a; 二、Monitor1、Java对象头1.1 32 位虚拟机的对象头1.2 64位虚拟机的对象头 2、Mark Word 结构3、Moniter4、Synchronized 字节码5、轻量级锁6、锁膨胀7、自旋优化8、偏向锁9、…

命令行使用ADB,不用root,完美卸载小米预装软件

ADB安装与运行 install java 下载安装 注意选择JDK17以上版本 https://www.oracle.com/java/technologies/downloads/#jdk22-windows 选择中间的安装文件下载 编辑系统变量 C:\Program Files (x86)\Java\jdk-22 C:\Program Files (x86)\Java\jdk-22\bin 把C:\Progra…

K210视觉识别模块学习笔记7:多线程多模型编程识别

今日开始学习K210视觉识别模块: 图形化操作函数 亚博智能 K210视觉识别模块...... 固件库: canmv_yahboom_v2.1.1.bin 训练网站: 嘉楠开发者社区 今日学习使用多线程、多模型来识别各种物体 这里先提前说一下本文这次测试实验的结果吧&#xff1a;结果是不太成…

视频去水印免费电脑版 pdf压缩在线免费网页版 pdf压缩在线免费 简单工具软件详细方法步骤分享

消除视频中的恼人水印&#xff0c;是许多视频编辑爱好者的常见需求。在这篇文章中&#xff0c;我们将探讨几种视频去水印的技巧&#xff0c;在数字化时代&#xff0c;视频和图片的传播越来越方便&#xff0c;但随之而来的水印问题也让人头疼。本文将为您详细介绍视频剪辑去水印…

捕获会自动消失的消息提示弹窗

如上图&#xff0c;我们会在一些场景碰到会自动消失的消息提示弹窗&#xff0c;一般存在个3-5秒&#xff0c;我们在做UI断言时&#xff0c;需要监测这个弹窗是否会出现&#xff0c;就需要去捕获这个弹窗的位置 我们打开浏览器的开发者模式(F12)&#xff0c;找到源码(Sources) …

探索 Redis 不同集群架构的性能与应用

1. 引言 Redis的集群配置成为了提高数据可靠性和服务可用性的关键。本文将带领大家了解Redis的四种主要集群架构&#xff0c;并重点分析哨兵模式和Redis Cluster架构和优势。 2. Redis的四种集群架构 2.1 单实例Redis 使用单个 Redis 实例提供服务。适用于小规模应用&#…

MiniExcel:.NET中处理Excel的高效方案

在.NET开发环境中&#xff0c;处理Excel文件是一项常见的任务&#xff0c;无论是数据导入、导出还是报表生成。传统的解决方案可能存在性能瓶颈或功能限制。MiniExcel作为一个现代、高效的库&#xff0c;为.NET开发者提供了一个强大的工具来简化Excel操作。本文将介绍MiniExcel…

爬虫程序在采集亚马逊站点数据时如何绕过验证码限制?

引言 在电商数据分析中&#xff0c;爬虫技术的应用日益广泛。通过爬虫技术&#xff0c;我们可以高效地获取大量的电商平台数据&#xff0c;这些数据对于市场分析、竞争情报、价格监控等有着极其重要的意义。亚马逊作为全球最大的电商平台之一&#xff0c;是数据采集的重要目标…

【技术升级】Docker环境下Nacos平滑升级攻略,安全配置一步到位

目前项目当中使用的Nacos版本为2.0.2&#xff0c;该版本可能存在一定的安全风险。软件的安全性是一个持续关注的问题&#xff0c;尤其是对于像Nacos这样的服务发现与配置管理平台&#xff0c;它在微服务架构中扮演着核心角色。随着新版本的发布&#xff0c;开发团队会修复已知的…

【解决】ubuntu20.04 root用户无法SSH登陆问题

Ubuntu root用户无法登录的问题通常可以通过修改‌SSH配置文件和系统登录配置来解决。 修改SSH配置文件 sudo vim /etc/ssh/sshd_config 找到 PermitRootLogin 设置&#xff0c;并将其值更改为 yes 以允许root用户通过SSH登录 保存并关闭文件之后&#xff0c;需要重启SSH服务…

【HarmonyOS】实现矩形上下拖动、动态拖拽修改高度

简介 实现一个矩形块上下拖动&#xff0c;并且可以拖动边缘定位点改变矩形块高度。实现效果如下&#xff1a; 代码 Entry Component struct Rec_Page {State penOffsetY: number 0;State offsetX: number 0State offsetY: number 0State positionX: number 0State posi…

Microsoft 官网免费下载安装正版官方增强版 office LSTC (长期支持版) 包含 visio , access

1.进入下方网址&#xff1a; https://www.microsoft.com/en-us/download/details.aspx?id49117 下载文件&#xff1a; officedeploymenttool_17126-20132.exe 现在看到下载链接可能失效了&#xff0c;但是下述步骤任然正确。需要下载文件的可以私信发送。 2.进入下方网址…

家具购物小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;家具分类管理&#xff0c;家具新品管理&#xff0c;订单管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;家具新品&#xff0c;家具公告&#xff0…

filament 初使用记录

安装初始化 一、环境准备 官网要的 我安装的 二、下载安装 安装laravel composer create-project --prefer-dist laravel/laravel 项目名称 10.*导入 filament composer require filament/filament注册 filament 管理面板 php artisan filament:install --panels初始化…

vue3前端开发-小兔鲜项目-登录组件的开发表单验证

vue3前端开发-小兔鲜项目-登录组件的开发表单验证&#xff01;现在开始写登录页面的内容。首先这一次完成基础的首页按钮点击跳转&#xff0c;以及初始化一些简单的表单的输入验证。后期还会继续完善内容。 1&#xff1a;首先还是准备好login页面的组件代码内容。 <script …

MySQL基础练习题7-销售分析

题目&#xff1a;报告 2019年春季 才售出的产品。即 仅 在 2019-01-01 &#xff08;含&#xff09;至 2019-03-31 &#xff08;含&#xff09;之间出售的商品。 准备数据 分析数据 方法一&#xff1a;group by having 第一步&#xff1a;先找到要求的列 第二步&#xff1…

CAN转PROFINET网关

型号&#xff1a;TCA-152 &#xff08;上海泗博自动化技术有限公司产品&#xff09; 基本说明&#xff1a;TCA-152可实现 PROFINET网络与CAN网络之间的数据通信。网关在PROFINET网络作为从站&#xff0c;CAN端支持CAN2.0A/CAN2.0B协议&#xff0c;支持对CAN帧进行过滤处理。 …