@hw-agconnect/database-ohos v1.0.3
AGConnect 云数据库
简介
云数据库是一款端云协同的数据库产品,提供端云数据的协同管理、统一的数据模型和丰富的数据管理API接口等能力。 在保证数据的可用性、可靠性、一致性,以及安全等特性基础上,能够实现数据在客户端和云端之间的无缝同步,并为应用提供离线支持,以帮助开发者快速构建端云、多端协同的应用。 同时,云数据库作为AppGallery Connect(简称AGC)关键服务之一,为AGC构建了MBaaS(Mobile Backend as a Service,移动后端即服务)能力。从而让应用开发者聚焦于应用本身的业务,极大的提升开发者的生产效率。 Learn More
下载安装
ohpm install @hw-agconnect/database-ohos
OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包
使用说明
import agconnect from "@hw-agconnect/api-ohos";
import "@hw-agconnect/core-ohos";
import "@hw-agconnect/auth-ohos";
import "@hw-agconnect/database-ohos";
需要权限
ohos.permission.INTERNET
使用示例
初始化
在您的项目中导入agc组件。
import agconnect from '@hw-agconnect/api-ohos'; import "@hw-agconnect/core-ohos"; import "@hw-agconnect/auth-ohos"; import "@hw-agconnect/database-ohos";
在您的应用初始化阶段使用context初始化SDK,推荐在MainAbility 的onCreate中进行。
//初始化SDK onCreate(want, launchParam) { //务必保证resources/rawfile中包含agconnect-services.json文件 agconnect.instance().init(this.context.getApplicationContext()); }
调用getInstance初始化一个默认存储实例的AGConnectCloudDB对象。
import schema from './app-schema.json'; import { AGConnectCloudDB } from '@hw-agconnect/database-ohos'; import { AGCRoutePolicy } from '@hw-agconnect/core-ohos'; const agcCloudDB = await AGConnectCloudDB.getInstance( { context: getContext(this), agcRoutePolicy: AGCRoutePolicy.CHINA, objectTypeInfo: schema });
打开存储区。
const cloudDBZone = await agcCloudDB.openCloudDBZone('QuickStartDemo');
写入数据。在应用界面中,增加了“添加”按钮,用于用户新增数据,并在代码中通过executeUpsert()实现数据的写入。
async function executeUpsert (book) { try { const cloudDBZoneResult = await cloudDBZone.executeUpsert(book); console.log('upsert' + cloudDBZoneResult + 'record' ); } catch (e) { console.log(e); } }
查询数据
在应用界面中,增加了“查询”按钮和排序功能,通过executeQuery()实现异步方式查询数据。
async function executeQuery() { try { const query = CloudDBZoneQuery.where(BookInfo); const snapshot = await cloudDBZone.executeQuery(query); const resultArray = snapshot.getSnapshotObjects(); console.log(resultArray); } catch(e) { console.log(e); } }
通过查询与limit()方法组合,实现限制查询数据显示条数的功能;与orderByAsc()方法或者orderByDesc()方法组合来实现数据的排序功能。
async function executeQueryWithOrder (object) { const query = CloudDBZoneQuery.where(BookInfo); if (object.name.length > 0) { query.equalTo('bookName', object.name); } if (parseFloat(object.minPrice) > 0) { query.greaterThanOrEqualTo('price', parseFloat(object.minPrice)); } if (parseFloat(object.maxPrice) > 0 && parseFloat(object.maxPrice) > parseFloat(object.minPrice)) { query.lessThanOrEqualTo('price', parseFloat(object.maxPrice)); } if (parseInt(object.bookCount) > 0) { query.limit(parseInt(object.bookCount)); } query.orderByAsc('id'); try { const snapshot = await cloudDBZone.executeQuery(query); return snapshot.getSnapshotObjects(); } catch (e) { return e; } }
删除数据
您可以通过executeDelete()删除单个对象或者一组对象。删除数据时,云数据库会根据传入对象主键删除相应的数据,不会比对该对象其它属性与存储的数据是否一致。 删除一组对象时,删除操作是原子的,即对象列表中的对象要么全部删除成功,要么全部删除失败。
async function executeDelete (book) {
try {
const num = await cloudDBZone.executeDelete(book);
console.log(num)
} catch (e) {
console.log(e);
}
}
约束与限制
在下述版本验证通过: DevEco Studio: 3.1 Beta2(3.1.0.400), SDK: API9 Release(3.2.11.9)
License
cloudstorage-ohos sdk is licensed under the: "ISC"