首页 > 数据库 >数据持久化-关系型数据库

数据持久化-关系型数据库

时间:2024-07-06 18:30:13浏览次数:6  
标签:持久 数据库 finished let result rdbStore predicates 数据

基于SQLite组件提供的本地数据库,用于管理应用中的结构化数据

用户首选项只能在轻量级数据中进行数据持久化,复杂的数据就需要用到关系型数据库

三步使用:1.初始化数据库 2.增删改数据 3.查询数据

1.初始化数据库

1)导入关系型数据库模块

import relationalStore from '@ohos.data.relationalSore';

2)  初始化数据库表

//rdb配置
const config = {
  name: 'MyApplication.db',//数据库文件名
  securityLevel: relationalSore.SecurityLevel.S1 //数据库安全级别
}
//初始化表的SQL
const sql = 'CREATE TABLE IF NOT EXISTS TASK (
                  ID INTEGER PRIMARY KEY,
                  NAME TEXT NOT NULL,
                  FINISHED bit
                  ) '    
//获取rdb
relationalStore.getRbdStore(this.context, config,(err, rdbStore) => {
  //执行SQL,后续的所有增删改查都是使用rdbStore对象
  rdbStore.executeSql(sql)
})
可以把rdb抽取为成员变量供下面重复使用
private rdbStore:relationalStore.RdbStore
保存rdbStore
this.rdbStore = rdbStore

 2.增删改数据

1)新增数据

//准备数据
let task = {id: 1, name:'任务1',finished:false};
//新增
this.rdbStore.insert(this.tableName,  task)

2)修改数据

//要更新的数据
let task = {'finished' : true};
//查询条件,RdbPredicates就是条件谓词
let predicates = new relationalStore.RdbPredicates(this.tableName)
predicates.equalTo('ID', id)
//执行更新
this.rdbStore.update(task,predicates)

3)删除数据

//查询条件
let predicates = new relationalStore.RdbPredicates(this.tableName)
predicates.equalTo('ID', id)
//执行删除
this.rdbStore.delete(predicates)

3.查询数据

1)查询数据

//查询条件
let predicates = new relationalStore.RdbPredicates(this.tableName)
//执行查询
let result = await this.rdbStore.query(predicates,['ID','NAME','FINISHED'])

查询是异步的,需要await等待,返回的是promise类型的result结果集,需要进行解析

2)解析结果

//准备数组保存结果
let tasks: any[] = []
//循环遍历结果集,判断是否结果遍历到最后一行
while(!result.isAtlastRow){
  //指针移动到下一行数据
  result.goToNextRow()
  //根据字段名获取字段index,从而获取字段值
  let id = result.getLong(result.getColumnIndex('ID'));
  let name = result.getString(result.getColumnIndex('NAME'));
  tasks.push({id,name,finished: !!finished})
}
拿到的finished结果需要转化为布尔类型所以要用!!finished来转化
假如finished=0, !finished=!0=1=true,!!finished=!true=false,这样就把0转化为false了

 

标签:持久,数据库,finished,let,result,rdbStore,predicates,数据
From: https://www.cnblogs.com/okcbatter/p/18286991

相关文章

  • Docker-文件分层与数据卷挂载详解(附案例)
    文章目录文件分层数据卷挂载的含义数据卷挂载实践数据卷挂载案例数据卷挂载方式数据卷常用命令容器间数据共享更多相关内容可查看文件分层例:拉取mysql5.7的镜像,在继续拉取mysql5.8的镜像,会出现一部分文件已存在的现象这种分层技术是docker强大的功能点之一......
  • 固态,机械,移动(U盘),sd卡,哪个更适合长期储存数据 保存数据用什么硬盘可靠 硬盘数据丢失怎
    有关硬盘数据丢失的恢复技巧,这篇文章一定要收藏好。在硬盘使用过程中,很多情况都会导致数据丢失,例如硬盘跌落、病毒感染、系统文件损坏等。这时候,一定要采用正确的方法,抢救硬盘中存储的珍贵数据和文档。有关长期保存数据用什么硬盘,硬盘数据丢失怎么解决的问题,本文将进行详细介......
  • 每周一个技能点:责任链模式实现数据多重校验
    定义:责任链模式(ChainofResponsibility):使多个对象都有机会处理同一请求,从而避免请求的发送者和接受者之间的耦合关系,每个对象都是一个处理节点,将这些对象连成一条链,并沿着这条链传递该请求。原始概念中,是直到链上的某个接收对象能够处理它为止。实际使用中,链上的所有对象......
  • easyrecovery激活密钥免费 easyrecovery中文破解版下载 easyrecovery数据恢复软件免费
    前言:EasyRecovery(易恢复中国)是由全球著名数据厂商Ontrack®出品的一款数据文件恢复软件。支持恢复不同存储介质数据:硬盘、光盘、U盘/移动硬盘、数码相机、Raid文件恢复等,能恢复包括文档、表格、图片、音视频等各种文件。开发背景:企业需寻找到一个长久而有效的数据维护、......
  • 数据结构——(双)链表
    文章目录1. 定义2. 双链表和单链表的区别3.代码示例3.1双链表节点和结构定义3.2初始化双链表3.3 返回双链表的长度3.4 在指定位置插入元素3.5 在末尾插入元素3.6 删除指定位置的元素并返回被删除的元素3.7 删除末尾元素3.8获取指定位置的元素3.9修改指......
  • 数据结构——单向循环链表
    文章目录1.概念2. 区别2.1结构区别2.2访问方式区别2.3优缺点对比3.流程4. 基本操作5.代码示例1.概念单向循环链表是一种特殊的单链表,其中最后一个节点的后继指针指向头节点,形成一个环。单向循环链表适合用于需要循环访问数据的场景,如约瑟夫环问题。节点......
  • 数据结构小学期第六天
    今天完全实现了九宫格拼图游戏,具备一键通关功能按下W键,查看原图功能按住A键不松,移动图片按上下左右键,如果你自己想要实现这个功能,需要自己的图片,图片格式要求。每个小图片是105*105,完整图片是315*315.有人想要做一下,可以试一试。代码如下启动类1importcom.itheima.ui.GameJ......
  • R:链接KEGG数据库获取更多描述信息
    rm(list=ls())#清除所有变量library(KEGGREST)#设置工作目录并读取数据setwd("C:\\Users\\Administrator\\Desktop\\New_microtable\\HUMAnN")#根据实际路径修改pathways_df<-read.table("kegg_abundance.txt",header=TRUE,stringsAsFactors=FA......
  • SQL脚本快速生成随机测试数据
    OraclecreatetableTestTableasselectlower(sys_guid())ASguid,rownumasinc_id,trunc(dbms_random.value(0,100))asrandom_id,trunc(dbms_random.value()*power(10,3),8)asrandom_decimal1,trunc(dbms_random.val......
  • centos7服务器yum安装MySQL数据库,以及报错的解决方案
    文章目录1、数据库能做什么?2、数据库由来3、数据库-系统结构4、版本二、部署1、官网地址3.点击[DOCUMENTATION](https://dev.mysql.com/doc/)4.mysql的yum仓库[UsingtheMySQLYumRepository](https://dev.mysql.com/doc/refman/8.4/en/linux-installation-yum-repo......