HarmonyOS鸿蒙Next新手也能搞定的端云一体化指南——云数据库
HarmonyOS鸿蒙Next新手也能搞定的端云一体化指南——云数据库
一些理论性的知识要点
云数据库概述
云数据库是一款端云协同的数据库产品,是AGC云开发(AGC Serverless)关键服务之一,为AGC构建了MBaas(Mobile Backend as a Service,移动后端即服务)能力。云数据库提供了端云数据的协同管理、统一的数据模型和丰富的数据管理API接口等能力,端侧可以编写少量的代码实现AGC云端云数据库的交互。
云数据库采用基于对象模型的数据存储结构,与常见的关系数据库(MySQL,Oracle等)类似,包含数据表、表字段、表字段值、主键,以及表操作权限。唯一不同在于存储区,数据以对象的形式存储在不同的存储区中,每一个对象,都是一条完整的数据记录。存储区是一个独立的数据存储区域,每个存储区拥有完全相同的对象类型定义(也就是数据表),可以根据业务能力为不同用户划分不同的存储区。
云数据库对象类型、存储区以及数据,可以通过AGC控制台定义、创建和管理,也可以通过一站式集成开发工具DevEco Studio定义、创建和管理。云数据库支持多种数据类型,包括字符串、数值、文本、日期等。
云数据库还提供了多重数据安全策略,基于隐私或者敏感数据的全程加密管理能力,加密字段的数据在端侧会被加密,然后再以密文形式发送并存储到云数据库中。同时,提供基于角色的权限管理模型,预置4种角色和3种权限,来保证数据的安全,同时简化了权限管理操作。
数据库模型概述
云数据库是一款基于对象模型的数据库,采用存储区、对象类型和对象三级结构。每个应用在开通云数据库服务后,都会实例化一个云数据库实例,该实例中可以创建多个对象类型(数据表)、多个存储区。一个对象类型的数据可以对应一个存储区,也可以对应多个存储区。
对象类型(ObjectType)
用于定义存储对象的集合,不同的对象类型对应的不同数据结构。每创建一个对象类型,云数据库会在每个存储区实例化一个与之结构相应的对象类型,用于存储对应的数据。
存储区(CloudDBZone)
是一个独立的数据存储区域,多个数据存储区相互独立。每个存储区拥有完全相同的对象类型定义,开发者可以根据业务需要自定义存储区中存储的对象。
对象(CloudDBZoneObject)
是云数据库基本操作单元,每个对象,都是一条完整的数据记录。
数据类型
云数据库支持多种数据类型,如下表所示:
数据类型 | 描述 | 取值范围 | 说明 |
---|---|---|---|
String | 字符串类型 | 最大长度200 | 字符串长度超过200,请使用Text类型。 |
Boolean | 布尔类型 | true:真;false:假。 | - |
Byte | 单字节整型 | -128 ~ +128 | - |
Short | 双字节整型 | -32,768 ~ +32,767 | - |
Integer | 四字节整型 | -2,147,483,648 ~ +2,147,483,647 | - |
Long | 八字节整型 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | - |
Float | 单精度浮点数 | -3.40E+38 ~ +3.40E+38,6位十进制有效数字。 | - |
Double | 双精度浮点数 | -1.79E+308 ~ +1.79E+308,15位十进制有效数字。 | - |
ByteArray | 字节数组 | - | 一般用于文件类型的数据存储,如图片、文档和视频等。 |
Text | 文本类型 | - | - |
Date | 日期类型 | - | - |
IntAutoIncrement | 自增类型,从1开始自增,Integet类型。 | 1 ~ 2,147,483,647 | - |
LongAutIncrement | 自增类型,从1开始自增,Long类型。 | 1 ~ 9,223,372,036,854,775,807 | - |
权限管理
云数据库支持对所有用户的访问进行鉴权,保障应用数据的安全。云侧访问云数据库的用户角色默认位管理员角色,即从AGC控制台、云函数和Server端访问云数据库角色,该角色默认拥有所有权限。端侧为应用程序运行端,端侧的数据操作有严格的安全规则限制,其数据的读写权限根据云侧权限配置表进行控制。
云数据库预置4种角色和3种权限,如下表所示:
角色 | query | upsert | delete | 说明 |
---|---|---|---|---|
所有人 | ✅ | ✅ | ✅ | 代表所有用户,包含认证和非认证用户。该角色默认拥有query权限,可自定义配置upsert和delete权限,但不建议将upsert和delete权限配置给所有人角色。当对象类型中设置了加密字段之后,表示开启全程加密功能,此时所有人角色将不会拥有query、upsert和delete权限,且不允许修改。 |
认证用户 | ✅ | ✅ | ✅ | 经过AGC登录认证的用户。该角色默认拥有query权限,可自定义配置upsert和delete权限。当对象类型中设置了加密字段之后,表示开启全程加密功能,此时认证用户角色将不会拥有query、upsert和delete权限,且不允许修改。 |
数据创建者 | ✅ | ✅ | ✅ | 经过认证的数据创建用户。该角色默认拥有所有权限,且可自定义配置所有权限。每条数据都有其对应的数据创建人(即应用用户),每个数据创建者仅可以upsert或者delete自己创建的数据,不能upsert或者delete他人创建的数据。数据创建者的信息保存在数据记录的系统表中。 |
管理员 | ✅ | ✅ | ✅ | 应用开发者,主要是指通过AGC控制台或FaaS(Function as a Service,函数即服务)侧访问云数据库的角色。该角色默认拥有所有权限,且可自定义配置所有权限。管理员可以管理并配置其他角色的权限。 |
总结
本小节主要对云数据库相关概念做了简单了解,并通过创建「欢迎页信息」对象类型详细讲解了使用一站式集成工具DevEco Studio开发、部署云数据库至AGC云端,同时提供了如何查看部署到AGC云端的云数据库资源。
HarmonyOS鸿蒙Next的端云一体化开发中,云数据库的使用主要依赖于华为云提供的云数据库服务(如Cloud DB)。开发者可以通过HarmonyOS提供的SDK与云数据库进行交互,实现数据的存储、查询和同步。
-
云数据库配置:首先,在华为云控制台创建云数据库实例,并获取数据库的连接信息(如App ID、API Key等)。在HarmonyOS项目中,通过配置文件或代码设置这些连接信息。
-
数据模型定义:在HarmonyOS中,使用ObjectType和Field注解定义数据模型。这些模型与云数据库中的表结构对应,确保数据能够正确映射。
-
数据操作:通过Cloud DB提供的API进行数据的增删改查操作。例如,使用
CloudDBZone
对象进行数据的插入、更新和删除,使用CloudDBZoneQuery
进行数据查询。 -
数据同步:HarmonyOS支持数据的自动同步功能。开发者可以通过设置同步策略,确保本地数据与云数据库中的数据保持一致。
-
权限管理:在云数据库中,可以通过设置访问控制策略,管理不同用户对数据的访问权限。HarmonyOS提供了相应的API,开发者可以在应用中实现权限管理功能。
-
错误处理:在使用云数据库时,可能会遇到网络错误、数据冲突等问题。HarmonyOS提供了错误处理机制,开发者可以通过捕获异常并进行相应处理,确保应用的稳定性。
通过以上步骤,开发者可以在HarmonyOS鸿蒙Next中实现端云一体化的云数据库功能,提升应用的数据处理能力和用户体验。
更多关于HarmonyOS鸿蒙Next新手也能搞定的端云一体化指南——云数据库的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙Next端云一体化云数据库指南
-
创建云数据库:登录华为开发者联盟,进入AppGallery Connect,选择“云数据库”,创建数据库实例,设置数据库名称和区域。
-
配置数据库:在云数据库管理页面,创建数据表,定义字段类型和索引,确保数据结构符合应用需求。
-
集成SDK:在HarmonyOS项目中,通过Maven或Gradle引入云数据库SDK,配置AppGallery Connect的
agconnect-services.json
文件。 -
实现数据操作:使用SDK提供的API进行增删改查操作,如
CloudDBZone
的executeUpsert
、executeQuery
等方法。 -
同步数据:通过
CloudDBZoneObserver
监听数据变化,实现本地与云端数据的实时同步。 -
测试与发布:在模拟器或真机上测试数据库功能,确保数据操作和同步正常,然后发布应用。
通过以上步骤,新手也能快速实现HarmonyOS应用的端云一体化数据库功能。