一、在AppGallery connect上 建立数据库

按照前一个博客的内容,假设,在AppGallery上已经创建好了一个项目“CSDNProjectDemo”。进入项目后,选择“云数据库”。
在这里插入图片描述

1.新增存储区

进入后,选择“存储区”,“新增”存储区。
在这里插入图片描述
存储区名称,可自行确定,这里填入“test”,一个存储区下面可以有几个对象。
在这里插入图片描述
点击确定后,就建好了一个存储区。
在这里插入图片描述

2.新增对象类型

点击“对象类型”后进入对象类型进行“新增”。
在这里插入图片描述
对象名字,此处写为book。
在这里插入图片描述
然后,增加字段。
在这里插入图片描述
为了方便,只定义了3个字段,一个id,一个name、一个、author。id数据类型设为IntAutoIncrement,其他两个的数据类型都设为string。并且把id设为主键,一个对象中一般只有一个主键,它能确保表中的每一行数据都可以被唯一区分,避免出现重复记录。这是主键最根本的作用。它还有利于提高检索效率。在这里插入图片描述
然后设置索引,索引名,自行取名。此处取“id_index”,右侧,制定这个索引对应的是“id”字段,ASC表示按照id升序排列(DESC是降序)。
在这里插入图片描述
接着设置权限,此处不讨论这个,按照默认即可。
在这里插入图片描述
点击确定后,book这个对象就创建好了。
在这里插入图片描述

3.新增对象数据

接下来新增对象数据。存储区名称,在右侧下拉选框取,选择刚创建的test;对象类型,在右侧下选框矿中选book。然后进行“新增”。
在这里插入图片描述
增加2本书的内容:
id 、name、author 分别输入:1、红楼梦、曹雪芹;2、水浒传、施耐庵。
在这里插入图片描述在这里插入图片描述
新增完毕,后点击“新增”按钮旁边的“查询”按钮,就能查看到刚才新建的2条内容。
在这里插入图片描述

4.导出对象类型

点击对象类型,选中下面的book对象,选择导出。
在这里插入图片描述
选择导出为“json格式”
在这里插入图片描述
这样就下载回来一个json文件。
在这里插入图片描述

二、在DevEco Studio中进行数据库操作

1.引入引入对象类型文件

将上面的“CSDNProjectDemo8 cn.json”文件改名成:schema.json。
然后,拷贝到DevEco Studio项目的“Application/AppScope/resources/rawfile”目录下。这一步很关键。
在这里插入图片描述

2.创建book对应的类

在工程中创建一个book类,名字可以自己取,这里取成“BookInfo.ets”,新建了一个Class文件夹,把这个BookInfo.ets放在了Class文件夹下(存放位置,自行决定)。
在这里插入图片描述
然后在BookInfo.ets中输入以下代码:

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

class BookInfo extends cloudDatabase.DatabaseObject{
  public naturalbase_ClassName(): string {
    return "book"; //此处的book名字一定要和云上的名字一样。
  }
  public id: number | undefined;
  public name: string | undefined;
  public author: string | undefined;
}

export { BookInfo };

注意,其中的return “book”;中的book一定要和云端的一模一样,否则会报错。
在这里插入图片描述
其中的public id: number | undefined; public name: string | undefined; public author: string | undefined;也是和云端的要对应:
在这里插入图片描述
在AGC控制台创建的字段类型与ArkTS数据类型的匹配关系如下:
String、Text对应string。
Boolean对应boolean。
Byte、ByteArray对应Uint8Array。
Short、Integer、Long、Float、Double、IntAutoIncrement、LongAutoIncrement对应number。
Date对应Date。

3.编写端侧页面代码

创建一个页面,并输入如下代码:

import { cloudDatabase } from '@kit.CloudFoundationKit';
import { BookInfo } from './Class/BookInfo';

@Entry
@Component
struct DataBaseDemo{
  @State receiveMsg:string="";
  async aboutToAppear() {
    let databaseZone = cloudDatabase.zone('test');
    let condition=new cloudDatabase.DatabaseQuery(BookInfo)
    try {
      let resultArray = await databaseZone.query(condition);
      this.receiveMsg=JSON.stringify(resultArray)
    } catch (err) {
      this.receiveMsg=JSON.stringify(err)
    }
  }
  build() {
  Text(this.receiveMsg)
  }
}

4.真机运行

真机运行结果如下:
在这里插入图片描述

三、数据库的各项操作

在上面的二、3节中,只做了一个数据,查询。在这一节中,将讲一下在DevEco Studio中的其他各项数据库操作。

1.修改数据库中的对象的字段(增加或者删减)

要先去AppGallery Connect上,去手动添加。比如,这里我们相对book对象的字段添加一个price字段。
在这里插入图片描述
新增一个字段,就可以了,字段写price,类型选Short,默认值0(默认0元)。
在这里插入图片描述

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐