1.0.3 • Published 2 years ago

@hw-agconnect/database-ohos v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

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

使用示例

初始化

  1. 在您的项目中导入agc组件。

    import agconnect from '@hw-agconnect/api-ohos';
    import "@hw-agconnect/core-ohos";
    import "@hw-agconnect/auth-ohos";
    import "@hw-agconnect/database-ohos";
  2. 在您的应用初始化阶段使用context初始化SDK,推荐在MainAbility 的onCreate中进行。

    //初始化SDK
    onCreate(want, launchParam) {
     //务必保证resources/rawfile中包含agconnect-services.json文件
     agconnect.instance().init(this.context.getApplicationContext());
    }
  3. 调用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
     });
  4. 打开存储区。

    const cloudDBZone = await agcCloudDB.openCloudDBZone('QuickStartDemo');
  5. 写入数据。在应用界面中,增加了“添加”按钮,用于用户新增数据,并在代码中通过executeUpsert()实现数据的写入。

    async function executeUpsert (book) {
     try {
        const cloudDBZoneResult = await cloudDBZone.executeUpsert(book);
        console.log('upsert' + cloudDBZoneResult + 'record' );
     } catch (e) {
        console.log(e);
     }
    }

查询数据

  1. 在应用界面中,增加了“查询”按钮和排序功能,通过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);
      }
    }
  2. 通过查询与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"

1.1.4-st001

2 years ago

1.0.3

2 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago