好 上文 HarmonyOS 数据持久化 关系型数据库之 初始化操作 我们讲了 关系型数据库初始化
那么 本文 我们来编写 增删改 相关代码
打开我们的项目 打开到 我们之前写的这个 relationalClass 类
然后 我们在 initTaskDB 下面再定义一个函数 叫 addTask 的函数 用来执行添加逻辑
直接编写代码如下
//添加表数据
addTask(name:string):Promise<number> {//调用rdbStore对象中的 insert 返回 添加进入的idreturn this.rdbStore.insert("TASK",{name,finished: false})
}
首先 我们函数 接受一个字符串类型的name 字段 没错 名字要从外面传进来
然后 我们直接通过存起来的 rdbStore 对象 调用 insert 函数
这个函数接收两个参数 第一个字符串类型 就是 表名 我们的表叫 TASK
然后 第二个参数 是要添加的值 键值对
第一个 name 我们直接从外面传进来
然后 第二个 finished 我们新加的 就赋值为false吧
然后 id因为 我们上文已经加了 AUTOINCREMENT 它会自动增长 不需要我们管
然后 这个函数 是异步的 成功回调后 会返回添加的这条数据的id
这里 我懒得处理了 直接返回回去 Promise
就这么简单 我们新增的就搞定了
然后 我们在下面再加一个 updateTask update顾名思义 修改的函数
编写代码如下
//根据id修改数据
updateTask(id:number,finished: boolean) {//传入表名 获取 predicates 对象let predicates = new relationalStore.RdbPredicates("TASK")// 通过 predicates 对象 调用 equalTo 编写修改添加 改ID匹配上的那一条predicates.equalTo('ID',id)//通过 rdbStore 调用update 执行修改操作 接受 一个对象 既要修改的字段和值 predicatesreturn this.rdbStore.update({finished},predicates)
}
这里 我们接收两个参数 id和finished
先 new 一个 predicates 对象 RdbPredicates函数接收表名作为参数 告诉它 你要修改哪张表
然后 用 predicates 对象调用 equalTo 传入修改的添加 通过 ID匹配我们传入的id
然后 最后 通过 rdbStore 调用 update
第一个参数 是个对象 指定我们要修改的字段 我们只修改finished 值是从外面传进来的
然后 第二个参数 predicates 就是我们new出来的那个
最后 返回值 我们直接让它返回出去 让调用这个方法的地方处理
修改会写了 那删除就很简单了
在下面再来一个函数
deleteTask
我们编写代码如下
//删除操作
deleteTask(id: number) {//传入表名 获取 predicates 对象let predicates = new relationalStore.RdbPredicates("TASK")// 通过 predicates 对象 调用 equalTo 编写删除条件 删ID匹配上的那一条predicates.equalTo('ID',id)//调用 delete 删除方法 只需要传入条件return this.rdbStore.delete(predicates)
}
这里 我们编写条件的方式 和 修改是一模一样的
然后 调用delete 函数 进行删除
好啦 那增删改 都搞定啦