HarmonyOS 鸿蒙Next端云一体化云数据库开发实战
HarmonyOS 鸿蒙Next端云一体化云数据库开发实战
技术栈:
- Appgallery connect
- 端云一体化
端云一体化的应用场景
为丰富HarmonyOS对云端开发的支持、实现端云联动,DevEco Studio以Cloud Foundation Kit(云开发服务)为底座、在传统的“端开发”基础上新增“云开发”能力,开发者在创建工程时选择合适的云开发工程模板,即可在DevEco Studio内同时完成HarmonyOS应用/元服务的端侧与云侧开发,体验端云一体化协同开发。
端云一体化能为我们做什么
作为移动应用开发,掌握了端云一体化之后,我们就可以实现很多轻量的应用,把之前需要前后端交互的屏障打破,自己一个人就是一个团队,做到真正的敏捷开发。
我们如何使用端云一体化
在系统sdk中已经集成了Cloud Foundation Kit,也就是我们的云开发服务,我们只需要在控制台创建项目,开启我们相关的功能,按照文档说明即可实现开发。
支持直接创建云项目,也可以进行老项目改造为端云一体化项目。
我们选择哪个进行业务开发
我们选择的是云数据库,因为我是安卓开发学习鸿蒙开发,我熟悉sqlite数据库,虽然它也是一个轻量级的数据库,但是它不能进行云端存储,缺少了一定的灵活性,云数据库恰好完善了这一点,这非常重要。
云数据库的使用
我们直接跟随官方的开发文档进行我们云数据库的开发和使用,首先我们打开HarmonyOs的官方开发工具DevecoStudio,我们创建一个云工程,在控制台我们把刚才创建的项目包名进行同步,创建APPID,创建对应的项目。然后我们在DevecoStudio中绑定,这时我们进到控制台,在快速开始栏目选择云开发,我们在云开发中点击开通,这样我们的项目就正式开通了云数据功能了,这里我们还需要注意一点,根据文档来看,云数据库的新增和修改,不能用默认签名,我们还需要创建类似Android中jks文件的东西,我们直接跟随文档创建,创建完成之后改成自签,这时候我们的准备工作就万无一失了。现在我们正式开始云数据库的使用。
打开工程,发现我们项目中现在有Application和Cloudprogram工程,这就是我们的云数据库相关的内容了,我们在cloudprogram工程中objecttype目录下,根据文档说明创建一张表
{
"objectTypeName": "txt",
"fields": [
{"fieldName": "id", "fieldType": "Integer", "notNull": true, "belongPrimaryKey": true},
{"fieldName": "msg", "fieldType": "String"},
{"fieldName": "txt", "fieldType": "String"}
],
"indexes": [
{"indexName": "IdIndex", "indexList": [{"fieldName":"id","sortType":"ASC"}]}
],
"permissions": [
{"role": "World", "rights": ["Read", "Upsert", "Delete"]},
{"role": "Authenticated", "rights": ["Read", "Upsert", "Delete"]},
{"role": "Creator", "rights": ["Read", "Upsert", "Delete"]},
{"role": "Administrator", "rights": ["Read", "Upsert", "Delete"]}
]
}
这一步跟我们的sqlite有些类似,我们继续向下。接下来我们要创建数据,我们在detaentry包下给txt表添加数据
{
"cloudDBZoneName": "default",
"objectTypeName": "txt",
"objects": [
{
"id": 10,
"msg": "测试",
"txt": "哈哈"
},
{
"id": 20,
"msg": "鸿蒙",
"txt": "安卓"
}
]
}
可以看到我们写了一些字符串。然后我们还需要进行同步,同步之后就可以进行增删改查了,我们在表创建的时候把增删的权限给了所有人,这里一定要注意,不给的话就需要认证,不然我们无法修改数据,我们开始查询和增删改查数据,在这之前我们还需要生成一个db类
import { cloudDatabase } from '@kit.CloudFoundationKit';
class txt extends cloudDatabase.DatabaseObject {
public id: number;
public msg: string;
public txt: string;
public naturalbase_ClassName(): string {
return 'txt';
}
}
export { txt };
接下来我们新建一个页面,进行增删改查
import { cloudDatabase } from '@kit.CloudFoundationKit';
import { book } from '../CloudDb/book';
import { hilog } from '@kit.PerformanceAnalysisKit';
@Entry
@Component
struct TestPage {
@State message: string = 'Hello World';
async aboutToAppear(): Promise<void> {
// 查
let databaseZone = cloudDatabase.zone('default');
let condition = new cloudDatabase.DatabaseQuery(txt);
let listData = await databaseZone.query(condition);
let json = JSON.stringify(listData)
hilog.debug(1,`${json}`,"test")
// 增 改
let s = new txt()
s.id = 1
s.msg = '11'
s.txt = '222'
let record = await databaseZone.upsert(s);
// 删
let ss = new txt();
ss.id = 3;
let deleteNum = await databaseZone.delete(ss);
}
}
后续我们通过一切判断条件,就可以实现所有的应用场景了
更多关于HarmonyOS 鸿蒙Next端云一体化云数据库开发实战的实战教程也可以访问 https://www.itying.com/category-93-b0.html
鸿蒙Next端云一体化云数据库开发主要使用Cloud DB服务,基于分布式数据管理能力实现端云数据同步。开发流程:
- 在AGC控制台创建Cloud DB服务,定义对象类型和存储区
- 集成Cloud DB SDK(@ohos/data/clouddb)
- 核心接口:
- 创建云数据库实例:cloudDB.createCloudDBZone
- 数据操作:executeUpsert/Query/Delete
- 数据同步通过订阅zone.onDataChange实现自动更新
关键特性:
- 支持离线缓存
- 数据加密传输
- 冲突自动解决策略
- 查询性能优化
更多关于HarmonyOS 鸿蒙Next端云一体化云数据库开发实战的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html