HarmonyOS App开发——鸿蒙ArkTS端云一体化云数据库应用和实战

AGC云数据库创建

打开 AppGallery Connect 的云数据库页面,左侧为 HarmonyOS 应用及云开发菜单,中间介绍云数据库特性,点击 "立即开通" 按钮。

选择"中国",点击确定。

在云数据库 for Object 页面,点击右侧蓝色 "新增" 按钮,可创建新对象类型,当前暂无数据,页面还支持导入、导出操作。

在新增对象类型页面,输入符合命名规则的对象类型名(如 test_data),点击右下角 "下一步",进入字段配置环节。

在 AppGallery Connect 云数据库新增对象类型的字段配置页,配置 id(Integer,主键非空)、picName(String)、price(Double)等字段,还可新增字段。

在云数据库新增对象类型的字段配置环节,已添加uId(Integer 类型,设为主键且非空)、name(String 类型)、age(String 类型)字段,可根据实际业务需求点击 "+ 新增字段" 补充更多字段。完成字段定义后,点击右下角 "下一步",进入索引配置步骤,用于测试数据库结构。

在新增对象类型的索引配置页,创建了名为 PicName 的索引,关联 picName 字段并设置升序(ASC)排序,完成后点击 "下一步" 进入数据权限配置。

在新增对象类型的数据权限页,为所有人、认证用户等角色配置了 query、upsert、delete 全权限,点击 "确定" 完成对象类型创建。

在云数据库 for Object 的对象类型列表页,已创建 PicInfo 对象类型,勾选目标类型后点击蓝色 "导出" 按钮,可导出该对象类型的配置信息。

在云数据库导出弹窗中,选择json 格式(支持界面导入导出),点击 "确定" 按钮,即可导出所选对象类型的配置文件。

在云数据库 for Object 的存储区页面,已有 QuickStartDemo 存储区,可点击右侧蓝色 "新增" 按钮创建新存储区,或对现有存储区执行删除操作。

鸿蒙端侧构建

在 DevEco Studio 创建项目的能力模板选择页,选中带云开发能力的[CloudDev]Empty Ability模板,点击 Next 进入后续创建流程。

在 DevEco Studio 项目配置页,填写项目名、与 AGC 平台一致的包名,设置保存路径与兼容 SDK,开启云开发后点击 Next。

在云开发资源关联页面,先登录验证账号,选择对应团队、包名(com.oylp.cs)及关联的 App 与项目,确认数据处理位置为中国(默认)后,点击右下角 "Finish" 按钮,完成项目与云开发资源的关联。

创建工程的代码如下。

在EntryAbility文件中,编写代码如下:

import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { window } from '@kit.ArkUI';
import { cloudCommon } from '@kit.CloudFoundationKit';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET);
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
cloudCommon.init()
}

import { cloudDatabase } from '@kit.CloudFoundationKit';

class PicInfo extends cloudDatabase.DatabaseObject {
public id: number | undefined;
public picName: string | undefined;
public price: number | undefined;

public naturalbase_ClassName(): string {
return "PicInfo";
}
}

export { PicInfo };

import { cloudDatabase } from '@kit.CloudFoundationKit';
import { PicInfo } from '../model/PicInfo';

@Entry
@Component
struct Index {
@State content: string = '';
agcDataBase: cloudDatabase.DatabaseZone | undefined = undefined;

aboutToAppear() {
this.agcDataBase = cloudDatabase.zone('QuickStartDemo');
}

async insert() {

try {

let picInfo = new PicInfo();
picInfo.id = 3;
picInfo.picName = '普通价格';
picInfo.price = 100.0;
let record = await this.agcDataBase?.upsert(picInfo)
console.info(`Succeeded in upserting a picInfo , result: ` + JSON.stringify(record));
} catch (err) {
console.error(`Failed to upsert a picInfo , Code: {err.code}, message: {err.message}`);
}
}

build() {

Column({space:20})
{
Button("插入数据",{type:ButtonType.Normal}).onClick(()=>{

this.insert()

})

}.width("100%").height("100%").backgroundColor(0x226688)
}
}

手动签名发布

在 DevEco Studio 项目结构的签名配置页,填写包名并勾选 HarmonyOS 支持,配置密钥库文件、密码、别名等签名信息,点击 "OK" 完成签名设置。

在云数据库 for Object 的数据页,选择QuickStartDemo存储区与PicInfo对象类型,可查询、新增数据,也能对现有数据执行查看、修改或删除操作。

云数据库增删改查

实现页面效果如图所示。

import { cloudDatabase } from '@kit.CloudFoundationKit';
import { PicInfo } from '../model/PicInfo';

@Entry
@Component
struct Index {
@State content: string = '';

agcDataBase: cloudDatabase.DatabaseZone | undefined = undefined;
condition: cloudDatabase.DatabaseQuery<cloudDatabase.DatabaseObject> | undefined = undefined;
aboutToAppear() {
this.agcDataBase = cloudDatabase.zone('QuickStartDemo');
this.condition = new cloudDatabase.DatabaseQuery(PicInfo);
}

//插入一条数据
async insert() {

try {

let picInfo = new PicInfo();
picInfo.id = 1;
picInfo.picName = '中级价格';
picInfo.price = 200.0;
let record = await this.agcDataBase?.upsert(picInfo)
console.info(`Succeeded in upserting a picInfo , result: ` + JSON.stringify(record));
} catch (err) {
console.error(`Failed to upsert a picInfo , Code: {err.code}, message: {err.message}`);
}
}

//查询所有数据
async queryAll() {
try {
let resultArray = await this.agcDataBase?.query(this.condition)
console.info(`Succeeded in querying , result: ` + JSON.stringify(resultArray));
} catch (err) {
console.error(`Failed to query , Code: {err.code}, message: {err.message}`);
}
}

//删除一条数据
async delete() {
try {
let picInfo = new PicInfo();
picInfo.id = 1;
let deleteNum = await this.agcDataBase?.delete(picInfo);
console.info(`Succeeded in deleting , result: ` + JSON.stringify(deleteNum));
} catch (err) {
console.error(`Failed to delete , Code: {err.code}, message: {err.message}`);
}
}

build() {

Column({space:20})
{
Button("插入数据",{type:ButtonType.Normal}).onClick(()=>{

this.insert()

})

Button("查询所有数据",{type:ButtonType.Normal}).onClick(()=>{

this.queryAll()

})

Button("删除数据",{type:ButtonType.Normal}).onClick(()=>{

this.delete()

})

}.width("100%").height("100%")
}
}

鸿蒙的端云一体化云数据库(Cloud DB)是为 ArkTS 应用打造的分布式数据管理解决方案 ,核心是实现 "端侧数据" 与 "云侧数据" 的无缝同步、统一管理,开发者无需关注底层通信和同步逻辑,只需通过统一的 API 操作数据,即可实现 , 通过这套体系,你可以快速为 ArkTS 应用搭建稳定的端云一体化数据管理能力,无需关注底层通信和云服务开发,聚焦业务逻辑即可 。

相关推荐
小猿姐16 小时前
实测对比:哪款开源 Kubernetes MySQL Operator 最值得用?(2026 深度评测)
数据库·mysql·云原生
见山是山-见水是水16 小时前
鸿蒙flutter第三方库适配 - 读书笔记
flutter·华为·harmonyos
Utopia^17 小时前
鸿蒙flutter第三方库适配 - 图片压缩工具
flutter·华为·harmonyos
倔强的石头_18 小时前
从 “存得下” 到 “算得快”:工业物联网需要新一代时序数据平台
数据库
SoraLuna18 小时前
「鸿蒙智能体实战记录 11」年俗文化展示卡片开发与多段内容结构化呈现实现
华为·harmonyos
Ww.xh18 小时前
OpenHarmony API8升API9:权限与接口变更实战指南
harmonyos
TDengine (老段)19 小时前
TDengine IDMP 可视化 —— 分享
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据·时序数据
GottdesKrieges19 小时前
OceanBase数据库备份配置
数据库·oceanbase
梁山好汉(Ls_man)20 小时前
鸿蒙_自定义组件包含多个引用自定义构建函数@BuilderParam时的用法
华为·harmonyos·鸿蒙·arkui
SPC的存折20 小时前
MySQL 8组复制完全指南
linux·运维·服务器·数据库·mysql