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

好啊 前面的文章
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 循环遍历tasksForEach(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 的点一下删除
这条数据就没了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/738019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

H ive 的并行能力比Spark SQL弱么?

直接比较Hive和Spark SQL的并行能力并不是简单的任务,因为它们有着不同的架构和设计目标。以下是一些相关方面的考虑: 架构差异: Hive: Hive 是基于Hadoop MapReduce 的数据仓库工具,其执行查询的方式是通过将 Hive 查…

C# OpenCvSharp 图片批量改名

目录 效果 项目 代码 下载 C# OpenCvSharp 图片批量改名 效果 项目 代码 using NLog; using OpenCvSharp; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Windows.Forms; namespace OpenCvSharp_Demo { publi…

Rabbitmq---topics模型之动态路由

fanout广播模型,只要生产者一发送,交换机会把所有的消息发给所有的广播者。在广播模式中,一条消息会被所有订阅的队列都消费,但是在某种场景下,我们希望不同的消息被不同的队列消费。这时候就要用到direct的类型的交换…

Go语言的HTTP WEB Demo案例

Go 语言 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在20…

用python实现选择排序

选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大&#xf…

webpack5基础--14_优化css

Css 处理 提取 Css 成单独文件 Css 文件目前被打包到 js 文件中,当 js 文件加载时,会创建一个 style 标签来生成样式 这样对于网站来说,会出现闪屏现象,用户体验不好 我们应该是单独的 Css 文件,通过 link 标签加载…

微信小程序仿QQ头像轮播效果

1、效果图 2、效果流程分析 1、第1个头像大小从1到0缩小的同时,第2个头像左移 2、上面动画结束后,延迟50ms,第3个头像从0到1放大 3、把头像列表顺序前移一位,并重置轮播状态,以此达到一个循环。然后继续第一个步骤 …

C++之虚函数表

一、概念 虚函数表是一个存在指向虚函数的指针数组,每一个带有虚函数的类都有一个虚函数表。虚函数表与虚函数一样是可以继承。这个表的每一个数组的值都是指向虚函数的指针。 二、虚函数表如何继承与重写 1、一个类继承另外一个带有虚函数的类,并且没…

【LeetCode】递归遍历 144.94.145 二叉树的前序遍历、中序遍历、后序遍历

今日学习的文章链接和视频链接 leetcode题目地址:144.二叉树的前序遍历 leetcode题目地址:94. 二叉树的中序遍历 leetcode题目地址:145. 二叉树的后序遍历 代码随想录题解地址:代码随想录 题目简介 给你二叉树的根节点 root &…

Java旋转矩阵

题目: 给你一幅由 N N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 示例 1: 给定 matrix [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵&…

3.11笔记3

3.11知识点3 1. break 语句和 continue 语句有什么区别?2. 使用 goto 计算 1-23-4......99-100 的值。3. 输入一个整数,判断这个数是不是素数。4. 写程序生成前 100 个素数。56. (a) 对于一个大小为N的数组,它的下标范围是多少?7.…

wins10安装ffmpeg

官网下载 点击进入官网:ffmpeg,官网地址:https://ffmpeg.org/download.html 点击上图中Windows图标选中后下面显示的第一行进入如下界面,在release builds第一个绿框里面选择一个版本下载: 下载好之后解压后&#xf…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:PatternLock)

图案密码锁组件,以九宫格图案的方式输入密码,用于密码验证场景。手指在PatternLock组件区域按下时开始进入输入状态,手指离开屏幕时结束输入状态完成密码输入。 说明: 该组件从API Version 9开始支持。后续版本如有新增内容&#…

GO语言-切片底层探索(上)

目录 1.前言 2. 算法题目 错误代码 3. 错误分析 4.总结: 5.正确代码: 6.本地测试代码: 1.前言 今天在力扣上写算法,遇到了一个比较"奇怪"的错误。由于自己使用了递归切片,导致一开始没有看明白&…

力扣最热100题——56.合并区间

吾日三省吾身 还记得梦想吗 正在努力实现它吗 可以坚持下去吗 目录 吾日三省吾身 力扣题号:56. 合并区间 - 力扣(LeetCode) 题目描述 Java解法一:排序然后原地操作 具体代码如下 Java解法二:new一个list&#xf…

(delphi11最新学习资料) Object Pascal 学习笔记---第7章第1节(引入类和对象)

第7章 对象 ​ 即使你没有面向对象编程(OOP)的详细知识,本章也将介绍每一个关键概念。如果你已经精通OOP,你可以相对快速地浏览材料,并将重点放在Object Pascal语言的细节上,与你可能已经掌握的其他语言进…

分布式ID(7):Zookeeper实现分布式ID生成

1 原理 实现方式有两种,一种通过节点,一种通过节点的版本号 节点的特性持久顺序节点(PERSISTENT_SEQUENTIAL) 他的基本特性和持久节点是一致的,额外的特性表现在顺序性上。在ZooKeeper中,每个父节点都会为他的第一级子节点维护一份顺序,用于记录下每个子节点创建的先后顺序…

虚拟机中安装Win98

文章目录 一、下载Win98二、制作可启动光盘三、VMware中安装Win98四、Qemu中安装Win981. Qemu的安装2. 安装Win98 Win98是微软于1998年发布的16位与32位混合的操作系统,也是一代经典的操作系统,期间出现了不少经典的软件与游戏,还是值得怀念的…

Kafka - This server does not host this topic-partition

问题描述 org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This server does not host this topic-partition 原因分析 分区数据不在。producer 向不存在的 topic 发送消息 解决方案 用户可以检查 topic 是否存在设置 auto.create.topics.enable 参数

【LiveVideoStack】批量下载公众号文章

livevideostack暂停商业运行 官方建议关注文章保存,因此: y9000p 上运行: xiaoguyu / wechatDownload 大神太厉害了,工具软件很好很强大 windows 试试直接安装、编译、运行 zhangbin@LAPTOP-DFV9CMRA MINGW64 /g/ISOFT/livevideostack $ git clone https://github.com/xiao…