写点什么

HarmonyOS Next 端云一体化(2)

作者:万少
  • 2025-01-19
    广东
  • 本文字数:2218 字

    阅读完需:约 7 分钟

HarmonyOS Next 端云一体化(2)

HarmonyOS Next 端云一体化(2)

本章节主要讲一下端云一体化中的数据库操作

介绍

云数据库是端云协同的数据库产品,具备端云数据协同管理、统一数据模型及丰富数据管理 API 接口等能力。它采用基于对象模型


数据存储结构,数据以对象(Object) 形式存于不同存储区,每个对象为一条完整数据记录。 对象类型(ObjectType) 定义存储对


象集合,不同对象类型对应不同数据结构。存储区(Zone) 是独立的数据存储区域,每个存储区的对象类型定义完全相同。

学习流程

我们会按照以下流程来进行学习。


  1. 新建存储区:也就是新建数据库

  2. 创建对象类型:创建一个用于存储数据条目的对象类型。

  3. 添加数据条目:在刚刚创建的对象类型内添加一条条数据,并配置数据所在的存储区。

  4. 部署云数据库:数据成功添加后,您可以直接将该数据部署至 AGC 云端。您也可以等所有对象类型和数据条目开发完成后,再统一批量部署到 AGC 云端。

存储区

我们这里新建一个存储区 Study 用来存放稍后用到的数据。



然后我们在 DevEco Studio 的 云端配置中指定存储区。


clouddb/db-config.json


{    "defaultCloudDBZoneName": "Study", // 存储区的名称    "defaultDataStorageLocation": "CN"}
复制代码

创建对象类型

什么是创建对象类型

创建对象类型可以理解为就是为我们的数据定义类型。类似于使用接口或者 class 来定义数据,但是这里操作的范围要更大。


  1. 定义基本的数据类型,如数字、字符串、布尔、日期时间等。

  2. 定义字段的权限,因为这个对象类型本身是数据表,定义权限相当于设置了哪一类用户拥有哪些权限。如读取、编辑、新增、删除等

  3. 定义索引,考虑数据量大需要比较方便的查找到要操作的数据,需要定义索引。


比如,我们需要根据书籍数据来定义类型。 Book


对象类型的规范

新建 Book 对象类型文件



这个对文件需要按照以下格式来编写。其中的字段的一些规范需要特别注意。


{  "objectTypeName": 对象实体名称  "fields": 对象中的属性  "indexes": 索引  "permissions" 权限}
复制代码

objectTypeName

表示实体对象的名称,我们这里可以是 Book


{  "objectTypeName": "Book"}
复制代码

fields

fields 表示这个对象中属性的一些规则。



按照我们想要的书籍的规定。可以这样



{  "objectTypeName": "Book",  "fields": [    {      "fieldName": "id",      "fieldType": "IntAutoIncrement",      "belongPrimaryKey": true,      "notNull": true    },    {      "fieldName": "name",      "fieldType": "String"    },    {      "fieldName": "price",      "fieldType": "Double"    },    {      "fieldName": "publish",      "fieldType": "Date"    },    {      "fieldName": "hot",      "fieldType": "Boolean"    },    {      "fieldName": "cover",      "fieldType": "String"    }  ]}
复制代码

indexes

indexes 中为该对象类型配置索引、索引包含的字段、以及索引包含的字段的排序方式。



这里我们为书籍的 id 和书籍的名称提供索引。


{  "indexes": [    {      "indexName": "id_Index",      "indexList": [        {          "fieldName": "id",          "sortType": "ASC"        }      ]    },    {      "indexName": "price_Index",      "indexList": [        {          "fieldName": "price",          "sortType": "DESC"        }      ]    }  ]}
复制代码

permissions

permissions 字段用来设置该数据表的操作权限的。


目前提供的角色和权限有以下分类。



接下来,我们为 这些角色设置以下的权限。



代码如下:


{  "permissions": [    {      "role": "World",      "rights": ["Read"]    },    {      "role": "Authenticated",      "rights": ["Read", "Upsert"]    },    {      "role": "Creator",      "rights": ["Read", "Upsert", "Delete"]    },    {      "role": "Administrator",      "rights": ["Read", "Upsert", "Delete"]    }  ]}
复制代码

创建数据条目

我们搭建好了对象类型,现在可以根据它来插入数据了。


  1. 新建数据文件





  2. 插入数据 这里可以看到一些基本数据

  3. 字段解释

  4. cloudDBZoneName:配置存储区名称。

  5. objects:配置当前对象类型中所有字段的值,即写入数据。一个对象(object)即为一条数据,您可以通过新建一个对象(object)来为字段赋新值,也可以修改某个对象(object)下字段的值(主键或加密字段的值不支持修改)

部署云数据库

刚才我们都是在本地搭建的数据库,现在我们需要将这些数据同步到 AGC 平台的数据库上。


部署的方式也很简单


  1. 部署



  1. 成本



  1. 刷新 AGC 平台上的数据库


总结

本文详细介绍了 HarmonyOS 云数据库的基本操作流程:


  1. 存储区(Zone)创建

  2. 创建名为 Study 的存储区

  3. 在 DevEco Studio 中配置存储区信息

  4. 对象类型(ObjectType)定义

  5. 详细讲解了对象类型的规范和组成部分

  6. 包含 objectTypeName、fields、indexes 和 permissions 四个主要部分

  7. 以 Book 对象为例,展示了完整的对象类型定义过程

  8. 数据操作

  9. 创建数据条目的具体步骤

  10. 展示了如何在 JSON 文件中定义数据内容

  11. 说明了 cloudDBZoneName 和 objects 的配置方法

  12. 云端部署

  13. 介绍了如何将本地数据库部署到 AGC 平台

  14. 展示了部署过程和成本预估

  15. 说明了如何在 AGC 平台上刷新数据库


通过这些步骤,我们完成了一个基本的云数据库的创建、配置和部署过程,为后续的端云协同开发打下了基础。




如果你兴趣想要了解更多的鸿蒙应用开发细节和最新资讯,欢迎在评论区留言或者私信或者看我个人信息,可以加入技术交流群。


发布于: 刚刚阅读数: 2
用户头像

万少

关注

还未添加个人签名 2021-12-02 加入

还未添加个人简介

评论

发布
暂无评论
HarmonyOS Next 端云一体化(2)_HarmonyOS NEXT_万少_InfoQ写作社区