鸿蒙 DevEcoStudio:关系型数据库增删改查练习

修改entry/src/main/ets/entryability目录下的EntryAbility.ts文件:

export default class EntryAbility extends UIAbility {onCreate(want, launchParam) {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');

之后添加:

const config={
name:'person.db', //数据库文件名
SecurityLevel:relationalStore.SecurityLevel.S1
}
const sql='create table if not exists account(id int primary key,username varchar not null)'
relationalStore.getRdbStore(this.context,config,(err,rdbStore)=>{if (err) {console.log('连接失败')
}console.log('连接成功')rdbStore.executeSql(sql)globalThis.rdbStore=rdbStore
})

import window from '@ohos.window';

之后添加(如果输入上边代码后没有自动添加的话):

import relationalStore from '@ohos.data.relationalStore';
import securityLabel from '@ohos.file.securityLabel';

修改entry/src/main/ets/pages路径下的index.ets文件:

import relationalStore from '@ohos.data.relationalStore'
@Entry
@Component
struct Index {@State message: string = 'Hello World'rdbStore:relationalStore.RdbStore=globalThis.rdbStorebuild() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Text('增加').onClick(()=>{// insert into account values(1,'zhangsan')let data={id:1,username:'zhangsan'}this.rdbStore.insert('account',data,(err,rowId)=>{if (err) {console.log('添加失败')}console.log(rowId.toString()+'添加成功')})})Text('增加')  //第二条数据,可直接复制上边增加的代码.onClick(()=>{// insert into account values(2,'wangwu')let data={id:2,username:'wangwu'}this.rdbStore.insert('account',data,(err,rowId)=>{if (err) {console.log('添加失败')}console.log(rowId.toString()+'添加成功')})})Text('更新').onClick(()=>{//update account set username='lisi' where id=1let predicates=new relationalStore.RdbPredicates('account')predicates.equalTo('id',1)let data={username:'lisi'}this.rdbStore.update(data,predicates,(err,rows)=>{if (err) {console.log('sql语句错误,更新失败')}// rows输出值为0,说明没有更新;row为1,说明已更新console.log(rows.toString()+'更新成功')})})Text('删除').onClick(()=>{//delete from account where id=1let predicates=new relationalStore.RdbPredicates('account')predicates.equalTo('id',1)this.rdbStore.delete(predicates,(err,rows)=>{if (err) {console.log('sql语句错误,删除失败')}console.log(rows.toString()+'删除成功')})})Text('获取').onClick(()=>{//select id,username from account where id=1let predicates=new relationalStore.RdbPredicates('account')// predicates.equalTo('id',1)  //查询多条时注释掉this.rdbStore.query(predicates,['id','username'],(err,resultSet)=>{//resultSet.isAtLastRow方法 用于判断是不是箭头在最后一行,如果在最后一行返回true,否则返回falseif (!resultSet.isAtLastRow) {resultSet.goToNextRow()  //将箭头指针指向下一行//getColumnIndex 是获取指针指向那一行的哪个字段,getLong是获取字段相应的数据类型console.log(resultSet.getLong(resultSet.getColumnIndex('id')).toString()+'获取成功')console.log(resultSet.getString(resultSet.getColumnIndex('username'))+'获取成功')}})})}.width('100%')}.height('100%')}
}

实际效果图:

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

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

相关文章

学习Nginx(五):虚拟主机配置

核心功能 在演示虚拟主机配置之前,来看一下Nginx配置的核心功能说明。 了解配置更多功能,请查看官方说明: http://nginx.org/en/docs/ngx_core_module.html [rootRockyLinux9 conf]# cat nginx.conf # 核心功能,全局配置 # 设置启…

【Vue3源码实现】Ref isRef unRef proxyRefs实现

前言 在上篇文章中 我们了解了响应式原理,并在最后实现了reactive。 上文链接🔥🔥🔥Vue3响应式原理实现与track和trigger依赖收集和触发依赖 在我们的日常业务中,我们有可能需要将一个基础数据类型的值也转换成响应式…

Linux 生态与工具

各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 目录 Linux生态简介:Linux工具lrzsz&#xff…

抖音产品全线恢复

商城,商品,直播,小黄车 等等

mysql数据库插入中文失败

有一张表,结构如下: MariaDB [test]> show create table dept; ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------…

智能仪表在铁塔行业的应用

应用场景 可应用于基站的交直流配电箱及对基站内的动力设备进行数据采集和控制。 功能 1.对多个回路进行全电参量测量,实现基站内各回路用电能耗的集中管理; 2.丰富的DI/DO输入输出,NTC测温,温湿度测量等非电参量监测&#xff…

分体工业读写器的适用场景有哪些?

工业读写器根据设计方式不同,可分为一体式读写器和分体式读写器,不同读写器特点不同,适用场景也不同,下面我们就一起来了解一下超高频分体读写器适用场景有哪些。 超高频分体读写器介绍 超高频分体读写器是一种射频识别(RFID)设…

Sass语法介绍-导入

11【Sass语法介绍-导入】 1.前言 在 CSS 中我们可以通过 import 来导入一个样式文件,Sass 扩展了 CSS 的 import 规则,使得可以导入 CSS 后缀的样式文件和 Scss 后缀的样式文件,并且提供了对 mixin 、函数和变量的访问。 与 CSS 的 import…

AI技术的实际应用和影响

随着人工智能技术的快速发展,越来越多的AI工具开始出现在我们的生活中。这些工具在各个领域都发挥着重要的作用,为人们带来了便利和效率。在这篇文章中,我们将探讨人们在使用AI工具时最喜欢的和认为最好用的工具,并展示AI技术的实…

【QEMU系统分析之实例篇(三十五)】

系列文章目录 第三十五章 QEMU系统仿真的机器创建分析实例 qdev_connect_gpio_out_named(lpc_dev, ICH9_GPIO_GSI) 文章目录 系列文章目录第三十五章 QEMU系统仿真的机器创建分析实例qdev_connect_gpio_out_named(lpc_dev, ICH9_GPIO_GSI) 前言一、QEMU是什么?二、…

Python内置函数oct()详解

Python中的oct()函数是一个内置函数,用于将一个整数转换成它的八进制字符串表示。 函数定义 oct()函数的基本语法如下: oct(x)x:一个整数。 函数返回x的八进制表示,以字符串形式。 基本用法 将整数转换为八进制 number 64…

神经网络激活函数

一、为什么需要激活函数 通俗解释 想象一下你在玩乐高积木。你有各种不同颜色和形状的积木,你的任务是建造一个模型——也许是一辆车、一座房子,或者是一只动物。 如果你只允许每一块积木直接堆叠在另一块上面(想象一下只能垂直或水平地把…

深度学习模型的训练细节

摘要: 深度学习模型训练是复杂且细致操作的过程,涉及多个步骤和技巧。在训练深度学习模型时,中间变量的检查是至关重要的,它可以帮助我们理解模型的学习动态,获得真实的训练过程反馈,及时发现并解决问题。通…

初识C语言——第二十天

do while ()循环 do 循环语句; while(表达式); 句式结构: 执行过程: do while循环的特点: 代码练习: 二分法算法: int main() {int arr[] { 0,1,2,3,4,5,6,7,8,9};int k 7;//查找数字7,在arr这个数组…

80%的产品经理被辞退不是因为能力,而是因为…

新手刚入门做产品经理,对产品经理的工作其实也是没有把握,这是对这份工作不够了解,不知道整个工作的流程,所以会感觉“没把握”,结果就是导致焦虑。 如果你硬着头皮做一遍,知道大概是怎么回事,…

Advanced RAG 07:在RAG系统中进行表格数据处理的新思路

编者按: 目前,检索增强生成(RAG)系统成为了将海量知识赋能于大模型的关键技术之一。然而,如何高效地处理半结构化和非结构化数据,尤其是文档中的表格数据,仍然是 RAG 系统面临的一大难题。 本文作者针对这一…

中国仓储物流装备产业链上最全产品资料大全(目前238家公司产品资料……)...

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 知识星球【智能仓储物流技术研习社】内已经收录了如下中国230多家仓储物流装备和技术相关产业链的公司的产品手册,请星球会员…

Oracle GoldenGate 配置双向同步

Oracle GoldenGate 配置双向同步 一、环境准备 DB版本:19.3 GoldenGate版本:21.3 系统环境配置: mkdir -p /u01/app/ogg_home chmod -R 777 /u01/app/ogg_home chown -R oracle:oinstall /u01/app/ogg_home vi .bash_profile # oracle export CV_ASSUME_DISTID=OEL7 expo…

python-pytorch seq2seq+attention笔记1.0.2

python-pytorch seq2seq+attention笔记1.0.0 1. LSTM模型的数据size2. 关于LSTM的输入数据包含hn和cn时,hn和cn的size3. LSTM参数中默认batch_first4. Attention机制的三种算法5. 模型的编码器6. 模型的解码器7. 最终模型8. 数据的准备9. 遇到的问题10. 完整代码11. 参考链接记…

好文推荐:基于热红外的双源能量平衡(TSEB)模型--从植物到全球尺度的蒸散诊断简史

文献 近日,美国农业部农业研究服务局(USDA-ARS)的科学家们发表了一篇重要的研究论文——“Agricultural and Forest Meteorology” (https://www.sciencedirect.com/journal/agricultural-and-forest-meteorology)&…