IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 使用Cloud DB构建APP 快速入门-Server篇 -> 正文阅读

[移动开发]使用Cloud DB构建APP 快速入门-Server篇

Java

Cloud DB提供多种云数据库数据管理方式,您可以在AppGallery Connect控制台管理数据,也可以在服务器上直接管理云侧数据库中的数据。您只需要在服务器端的服务中集成云数据库服务的Server SDK,即可调用它提供的接口,完成相关服务功能开发。Server SDK将会为您的服务器与云数据库的通讯和通讯安全提供保障。

使用Server SDK管理数据,需要完成以下准备工作:

  • 您已经在AppGallery Connect控制台上开通云数据库,并成功创建对象类型。
  • 您已经获取到示例代码,请从示例代码获取。

配置开发环境

  1. 添加认证凭据,详细请参见项目级凭据
  2. 添加Server SDK至应用级build.gradle文件。

    在<项目名>/app/build.gradle文件中dependencies部分添加Server SDK。

    dependencies {
        // 添加Cloud DB SDK
        implementation 'com.huawei.agconnect.server:agconnect-database-server-sdk:1.0.3.300'
    }
  3. 在应用级build.gradle文件中设置Java源码兼容模式为JDK1.8版本。
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }

添加对象类型文件

您在进行本地应用开发时,可直接将AppGallery Connect控制台上导出的java格式文件添加至本地开发环境,无需再次创建对象类型。

  1. 导出用于Server端的服务开发的java格式对象类型文件,请参见导出对象类型
  2. 将导出的全部java格式文件添加至本地开发环境,如已存在,请覆盖原文件。文件位置:<database>/src/main/java/com/huawei/agc/clouddb/quickstart/model。

初始化

在添加对象类型文件后,您就可以开始开发Server端的服务。在开发Server端的服务前,您需要先初始化对应数据处理位置的AGCClient,并创建Cloud DB zone实例和CloudDBZoneConfig对象,设置需要进行数据操作的云侧存储区名称。

  1. 配置开发环境中获取的认证凭据放置到您自定义的目录,并通过ClientNameEnum指定对应数据处理位置,调用getClientName方法获取初始化后的AGCClient实例。
    String credentialPath = "agc-apiclient.json";
    AGCClient.initialize(ClientNameEnum.CLOUDDB_CN.getClientName(), AGCParameter.builder()
    .setCredential(CredentialParser.toCredential(credentialPath))
    .build(), Constants.Region.REGION_CN);
    AGCClient初始化参数对应关系如下表。

    ClientNameEnum

    Constants.Region

    CLOUDDB_CN

    REGION_CN

    CLOUDDB_RU

    REGION_RU

    CLOUDDB_SG

    REGION_SG

    CLOUDDB_DE

    REGION_DE

  2. 通过getInstance(AGCClient agcClient)方法获取对应数据处理位置的AGConnectCloudDB实例。
    AGCClient agcClient = AGCClient.getInstance(CLOUDDB_CN.getClientName());
    agConnectCloudDB = AGConnectCloudDB.getInstance(agcClient);
  3. 创建CloudDBZoneConfig配置对象,并设置云侧Cloud DB zone名称,打开Cloud DB zone实例,详细请参考CloudDBZoneConfig
    CloudDBZoneConfig cloudDBZoneConfig = new CloudDBZoneConfig("QuickStartDemo");
    mCloudDBZone = agConnectCloudDB.openCloudDBZone(cloudDBZoneConfig);

写入数据

在本节主要介绍如何在Server端的服务中进行数据写入操作,以便您了解如何使用Server SDK实现数据的写入。使用executeUpsert()方法实现数据的写入。BookInfo为已定义对象类型,可参见新增和导出对象类型

public void upsertBookInfo(BookInfo bookInfo) {
    if (mCloudDBZone == null) {
        LOGGER.warn("CloudDBClient is null, try re-initialize it");
        return;
    }
    try {
        CompletableFuture<Integer> result = mCloudDBZone.executeUpsert(bookInfo);
        System.out.println(result.get());
    } catch (AGConnectCloudDBException | ExecutionException | InterruptedException e) {
        LOGGER.warn("upsertBookInfo: " + e.getMessage());
    }
}

查看数据

通过executeQuery()get()方法的组合实现异步方式查询数据。

public void queryBooks(CloudDBZoneQuery<BookInfo> query) {
    if (mCloudDBZone == null) {
        LOGGER.warn("CloudDBClient is null, try re-initialize it");
        return;
    }
    try {
        CompletableFuture<CloudDBZoneSnapshot<BookInfo>> result = mCloudDBZone.executeQuery(query);
        CloudDBZoneSnapshot<BookInfo> snapshot = result.get();
        processQueryResult(snapshot);
    } catch (AGConnectCloudDBException | InterruptedException | ExecutionException e) {
        LOGGER.warn("queryBooks: " + e.getMessage());
    }
}

通过查询与orderByDesc()方法和limit()方法组合来实现数据的降序排序,并限制查询数据显示条数。

private void queryWithOrder() {
    CloudDBZoneQuery<BookInfo> query = CloudDBZoneQuery.where(BookInfo.class);
    try {
        query.orderByDesc("price");
        query.limit(10);
        CompletableFuture<CloudDBZoneSnapshot<BookInfo>> result = mCloudDBZone.executeQuery(query);
        processQueryResult(result.get());
    } catch (AGConnectCloudDBException | InterruptedException | ExecutionException e) {
        LOGGER.warn("queryWithOrder: " + e.getMessage());
    }
}

JavaScript

Cloud DB提供多种云数据库数据管理方式,您可以在AppGallery Connect控制台管理数据,也可以在服务器上直接管理云侧数据库中的数据。您只需要在服务器端的服务中集成云数据库服务的Server SDK,即可调用它提供的接口,完成相关服务功能开发。Server SDK将会为您的服务器与云数据库的通讯和通讯安全提供保障。

使用Server SDK管理数据,需要完成以下准备工作:

  • 您已经在AppGallery Connect控制台上开通云数据库,并成功创建对象类型。
  • 您已经获取到示例代码,请从示例代码获取。

配置开发环境

  1. 添加认证凭据,详细请参见项目级凭据
  2. 执行以下命令,安装Server SDK到您的项目中,并将依赖添加到您项目中的package.json文件中。
    npm install --save @agconnect/database-server
  3. 在您项目中导入AGC模块。
    const clouddb = require('@agconnect/database-server/dist/index.js');
    const agconnect = require('@agconnect/common-server');

添加对象类型文件

您在进行本地应用开发时,可直接将AppGallery Connect控制台上导出的js格式文件添加至本地开发环境,无需再次创建对象类型。

  1. 导出用于Server端的服务开发的js格式对象类型文件,请参见导出对象类型
  2. 将导出的全部js格式文件添加至本地开发环境,如已存在,请覆盖原文件。文件位置:<database>/src/model。

初始化

在添加对象类型文件后,您就可以开始开发Server端的服务。在开发Server端的服务前,您需要先初始化AGCClient,并设置需要进行数据操作的云侧存储区名称,获取存储区实例。

  1. 配置开发环境中获取的认证凭据放置到您自定义的目录,并初始化AGCClient实例。
    const credentialPath = "resource\\agc-apiclient-xxxx.json";
    agconnect.AGCClient.initialize(agconnect.CredentialParser.toCredential(credentialPath));
    const agcClient = agconnect.AGCClient.getInstance();
  2. 通过getInstance()方法初始化AGConnectCloudDB实例。
    clouddb.AGConnectCloudDB.initialize(agcClient);
  3. 创建CloudDBZoneConfig配置对象,并设置云侧Cloud DB zone名称,打开Cloud DB zone实例,详细请参考CloudDBZoneConfig
    const zoneName = 'QuickStartDemo';
    const cloudDBZoneConfig = new clouddb.CloudDBZoneConfig(zoneName);
    const mCloudDBZone = clouddb.AGConnectCloudDB.getInstance().openCloudDBZone(cloudDBZoneConfig);

写入数据

在本节主要介绍如何在Server端的服务中进行数据写入操作,以便您了解如何使用Server SDK实现数据的写入。使用executeUpsert()方法实现数据的写入。BookInfo为已定义对象类型,可参见新增和导出对象类型

async upsertBookInfos(bookInfo) {
    if (!this.mCloudDBZone) {
        console.log("CloudDBClient is null, try re-initialize it");
        return;
    }
    try {
        const resp = await this.mCloudDBZone.executeUpsert(bookInfo);
    } catch (error) {
        console.warn('upsertBookInfo=>', error)
    }
}

查看数据

通过executeQuery()查询数据。

async queryBooks(cloudDBZoneQuery) {
    if (!this.mCloudDBZone) {
        console.log("CloudDBClient is null, try re-initialize it");
        return;
    }
    try {
        const resp = await this.mCloudDBZone.executeQuery(cloudDBZoneQuery);
        this.processQueryResult(resp.getSnapshotObjects());
    } catch (error) {
        console.warn('queryBooks=>', error)
    }
}

通过查询与orderByDesc()方法和limit()方法组合来实现数据的降序排序,并限制查询数据显示条数。

async queryBooksWithOrder() {
    if (!this.mCloudDBZone) {
        console.log("CloudDBClient is null, try re-initialize it");
        return;
    }
    try {
        const cloudDBZoneQuery = clouddb.CloudDBZoneQuery.where(BookInfo).orderByDesc("price").limit(3);
        const resp = await this.mCloudDBZone.executeQuery(cloudDBZoneQuery);
        this.processQueryResult(resp.getSnapshotObjects());
    } catch (error) {
        console.warn('queryBooks=>', error)
    }
}
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:39:08  更:2022-03-08 22:39:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 16:17:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码