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

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

然后 这里 我们要将 EntryAbility.ts 改为 ets文件 因为 我们要导入 自己写的这个 relationalClass
但 ts导不了 ets文件
然后在 onCreate 生命周期中 执行 relationalClass 下的 initTaskDB 初始化 数据库和创建表
要传入 this.conText
就是 我们Ability 上下文
HarmonyOS 关系型数据 整体测试 进行 初始化 增删查改 操作-LMLPHP
这样 我们程序 一启动 表就会初始化好了

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

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

HarmonyOS 关系型数据 整体测试 进行 初始化 增删查改 操作-LMLPHP
然后 我们整体代码编写如下

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%')
  }
}

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

然后 我们直接开启真机运行
开始是什么都没有
HarmonyOS 关系型数据 整体测试 进行 初始化 增删查改 操作-LMLPHP
我们多点击几次添加
数据就进来了
HarmonyOS 关系型数据 整体测试 进行 初始化 增删查改 操作-LMLPHP
然后 我们将 id 3 的点一下修改 finished 字段就会被更改
HarmonyOS 关系型数据 整体测试 进行 初始化 增删查改 操作-LMLPHP
然后 我们将id 3 的点一下删除
这条数据就没了
HarmonyOS 关系型数据 整体测试 进行 初始化 增删查改 操作-LMLPHP

03-16 00:20