HarmonyOS 关系型数据 整体测试 进行 初始化 增删查改 操作

本文详细介绍了如何在HarmonyOS应用中使用关系型数据库进行初始化操作,包括表的创建,以及如何实现增删改查功能。开发者通过`relationalClass`进行数据库操作,并在`EntryAbility`组件中展示了实际的代码实例。
摘要由CSDN通过智能技术生成

好啊 前面的文章
HarmonyOS 数据持久化 关系型数据库之 初始化操作
HarmonyOS 数据持久化 关系型数据库之 增删改逻辑编写
HarmonyOS 数据持久化 关系型数据库之 查询逻辑编写
我们分别编写了 初始化数据库表 增删查改操作 的逻辑代码

那么 下面我们就来整体操作一下

然后 这里 我们要将 EntryAbility.ts 改为 ets文件 因为 我们要导入 自己写的这个 relationalClass
但 ts导不了 ets文件
然后在 onCreate 生命周期中 执行 relationalClass 下的 initTaskDB 初始化 数据库和创建表
要传入 this.conText
就是 我们Ability 上下文
在这里插入图片描述
这样 我们程序 一启动 表就会初始化好了

然后 我们就可以做 增删查改的操作了
然后 我们要在首页 导入
relationalClass和Task
因为 我们不但要通过relationalClass 进行增删查改操作
而且 需要Task这个类型 进行数据接收操作

import relationalClass from "../utils/relationalClass";
import TaskInfo from "../utils/Task";

在这里插入图片描述
然后 我们整体代码编写如下

import relationalClass from "../utils/relationalClass";
import TaskInfo from "../utils/Task";
@Entry
@Component
struct Dom {

  /*
    * 定义一个 tasks 类型TaskInfo类的数组
    * 绑定 State 响应式数据 方便渲染在页面上
  */
  @State tasks:TaskInfo[] = [];

  /*
    * 定义函数 getTaskList 查询方法
    * 调用 relationalClass 下的 getTaskList
    * 通过 then 接收返回结果 赋值给tasks
  */
  getTaskList(){
    relationalClass.getTaskList().then(tasks =>{
      this.tasks = tasks;
    })
  }
  //aboutToAppear 组件准备加载时触发
  aboutToAppear(){
    //调用getTaskList查询方法
    this.getTaskList();
  }

  build() {
    Column({space: 30}) {
      //添加按钮
      Button("添加").onClick(async ()=>{
        /*
           * 调用relationalClass下的 addTask进行逻辑添加
           * 传入 添加项 + tasks数组长度的一个字符串 当做 name 传进去
           * 用 await 等待添加完成 重新执行 getTaskList查询函数
        */
        await relationalClass.addTask("添加项"+this.tasks.length);
        this.getTaskList();
      })

      //ForEach 循环遍历tasks
      ForEach(
        this.tasks,
        (item)=>{
          Row({space: 30}) {
            //分别展示  ID  NAME FINISHED 值
            Text("id:" + item.id)
            Text("name:" + item.name)
            Text("finished:" + item.finished)
            //修改按钮
            Button("修改").onClick(async ()=>{
              /*
                 * 调用 relationalClass下的updateTask
                 * 传入 当前id 和当前下标finished值的取反
                 * 修改完毕后 重新调用查询
               */
              await relationalClass.updateTask(item.id,!item.finished);
              this.getTaskList();
            })
            //删除操作
            Button("删除").onClick(async ()=>{
              //调用relationalClass下的deleteTask 传入当前id 进行逻辑删除
              await relationalClass.deleteTask(item.id);
              //重新调用查询函数
              this.getTaskList();
            })
          }
        }
      )
    }
    .width('100%')
    .height('100%')
  }
}

我注释已经写的很用心了 大家可以认真看一下
不会看不懂的

然后 我们直接开启真机运行
开始是什么都没有
在这里插入图片描述
我们多点击几次添加
数据就进来了
在这里插入图片描述
然后 我们将 id 3 的点一下修改 finished 字段就会被更改
在这里插入图片描述
然后 我们将id 3 的点一下删除
这条数据就没了
在这里插入图片描述

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值