API低代码平台介绍6-数据库记录删除功能
数据库记录删除功能
在前续文章中我们介绍了如何插入和修改数据库记录,本篇文章会沿用之前的测试数据,介绍如何使用ADI平台定义一个删除目标数据库记录的接口,包括 单主键单表删除、复合主键单表删除、多表删除(整合前两者)三种方式。无论是单表删除还是多表删除,一旦发生异常,,那么默认情况下API平台的整个数据删除事务都将自动回滚。
1.需求说明
根据前续文章的例子,我们已经实现把幢数据和户数据插入市大数据局的数据库表中。假设数据局提出了新要求:当业务系统的幢和户数据发生删除时,要对已归集到数据局的数据做同步删除。首先让我们回顾下dsj数据库中幢和户的表结构。
dsj数据库的幢表名为dsj_zhuangs,建表语句如下:
create table dsj_zhuangs
(xh bigint(20) not null primary key auto_increment comment '幢序号',zhdjdydm varchar(50) not null comment '幢登记单元代码',zl varchar(100) comment '幢坐落'
);
alter table dsj_zhuangs add unique (zhdjdydm);
dsj数据库的户表名为dsj_hus,建表语句如下:
create table dsj_hus
(xh bigint(20) not null primary key auto_increment comment '户序号',hdjdydm varchar(50) not null comment '户登记单元代码',zhdjdydm varchar(50) not null comment '所属幢登记单元代码',fbm varchar(50) comment '房编码',qsc int(4) comment '起始层',zhzhc int(4) comment '终止层',fh varchar(50) comment '室号/部位',zl varchar(100) comment '房屋坐落',jzjg varchar(50) comment '建筑结构',ghyt varchar(50) comment '规划用途',jzmj double(18, 3) comment '建筑面积'
);alter table dsj_hus add unique (hdjdydm);-- 设置户表的外键:zhdjdydm
alter table dsj_hus add constraint hus_fk_zhdjdydm foreign key (zhdjdydm) references dsj_zhuangs(zhdjdydm);
接下来我们再回顾下之前已经写入dsj数据库的数据。
幢表(dsj_zhuangs)数据:
户表(dsj_hus)数据:
2.单主键单表删除幢数据
所谓单主键,是指我们要根据这个表的某一个字段作为where条件,来删除对应的数据库记录;这个字段可以不是数据库表真正的主键,它可以是一个唯一键,甚至连唯一键都可以不是(如果不是唯一键或主键,就可以批量删除数据),大家更新实际的场景做选择即可,我们这里以幢表的zhdjdydm(幢登记单元代码)字段作为删除条件。
2.1 实现对dsj_zhuangs表的删除
要通过API平台删除数据库表的数据,那么需要定义一个delete请求的路由,由于delete请求无法以请求体的方式发送json报文,因此只能把入参放到url后面。调用ADI平台实现删除操作的报文结构如下:
primarykey={"tablename":[{"key1":"value1","key2":"value2"},{"key1":"value11","key2":"value2"}]}
primarykey是固定参数名(要么全部小写,要么全部大写),它的值是一个json对象,json对象的格式和咱们之前数据库记录插入或修改类似。
对于我们的幢表,请求参数应该如下:
primarykey={"dsj_zhuangs":[{"zhdjdydm":"110108001001GB00001F0002"}]}
json对象的根节点必须有一个和表名相同的节点名称,即dsj_zhuangs(大小写不敏感),且节点下必须包含主键字段名和字段值;dsj_zhuangs节点可以是一个json对象(意味着只能删除单个幢的记录)或者是一个json数组(意味着可以删除多个幢的记录)。
2.1.1 在API平台定义一个DELETE路由
路由编码可定义为deleteZhuang2dsj,意思是删除大数据平台的幢数据。如图:
注意调用方式选择delete。
2.1.2 在路由下定义一个分享设置
在分享设置中填写大数据平台的数据库(即目标库)连接方式。如图:
2.1.3 在分享设置中定义目标库的数据库表
点击分享设置后面的[表定义],在表定义界面点击[新增],填写以下字段,如图:
注意这里的主键字段要填写zhdjdydm,因为我们要根据已知的zhdjdydm来删除表记录。
2.1.4 调用接口完成幢表数据删除
打开在线接口文档,如图所示:
我们填写以下json数据:
{"dsj_zhuangs":[{"zhdjdydm":"110108001001GB00001F0002"}]}
为了演示,我们选择了一个下面没有户信息的幢,确保可以删除成功;如果幢下面有户信息,那么我们应该先删除户信息,再删除幢信息,否则会因为外键而报错。
点击[试一下],如图所示:
可以看到接口调用成功了,再看看dsj库里数据是否被删除了:
幢数据被成功删除。
值得一提的是,删除操作不会去校验我们传入的主键值在数据库表中是否存在,即使不存在也不会报错。
3.复合主键单表删除户数据
所谓复合主键,是指我们要根据这个表的某几个字段作为where条件,来删除对应的数据库记录;我们这里以户表的zhdjdydm(幢登记单元代码)和hdjdydm(户登记单元代码)字段作为删除条件。
3.1 实现对dsj_hus表的修改
这里我们演示删除幢登记单元代码为110108001001GB00001F0001、户登记单元代码为110108001001GB00001F00010004的户信息,报文结构如下:
{"dsj_hus":[{"zhdjdydm":"110108001001GB00001F0001","hdjdydm":"110108001001GB00001F00010004"}]}
3.1.1 在API平台定义一个DELETE路由
路由编码可定义为deleteHu2dsj,意思是删除大数据平台的户数据。如图:
注意调用方式选择delete。
3.1.2 在路由下定义一个分享设置
这里顺便给大家介绍一下分享设置的导入导出功能,通过分享设置的导入导出功能,可以把A环境(比如测试环境)的分享设置导入到B环境(比如生产环境),也可以把A路由的分享设置导入到B路由,极大的减少您配置的工作量。
我们上篇文章定义的修改户信息的分享设置和这里要定义的删除户信息的分享设置基本一致,因此,我们先导出那个分享设置,如图:
得到导出的json配置信息,如图:
然后打开路由deleteHu2dsj的分享设置列表,点击[导入],如图:
把刚才导出的json配置信息复制粘贴到这里,点击[导入分享设置],如图:
导入成功:
注意红框中的内容,需要您自行修改为与当前分享设置对应功能匹配的描述。例如我把分享编码由updateHu2dsj改为deleteHu2dsj,把分享名称由"修改大数据平台的户数据"改为"删除大数据平台的户数据"。
3.1.3 调用接口完成户表数据删除
打开在线接口文档,如图所示:
我们填写以下json数据:
{"dsj_hus":[{"zhdjdydm":"110108001001GB00001F0001","hdjdydm":"110108001001GB00001F00010004"}]}
点击[试一下],如图所示:
可以看到接口调用成功了,再看看dsj库里数据是否被删除了:
户数据被成功删除。
4.多表删除(整合前两者)
所谓多表删除,是指我们通过一个接口实现对多张表的删除操作。我们前续文章已经知道如何实现多表插入、多表修改、多表删除也是相同的道理,我们只需要在一个分享设置下进行表定义的时候把这些表都定义进去即可。
唯一需要您知道的是,当多表删除时,我们的报文应该是这样的:
{"dsj_zhuangs":[{"zhdjdydm":"110108001001GB00001F0001"}],"dsj_hus":[{"zhdjdydm":"110108001001GB00001F0001","hdjdydm":"110108001001GB00001F00010004"}]}
在定义表的时候,户表的操作顺序应该小于幢表,也就是说要先删户表的记录,再删幢表的记录,避免外键关联导致的报错。
5.总结
到这里,对单主键单表、复合主键单表、多表的删除功能介绍就完成了,无论是哪一种,只要是一个分享设置下的操作,都会确保在同一个事务中执行,一旦发生异常都会自动回滚。另外,我们这里演示的都是手工组装报文进行测试,在实际工作中,大家可以参考上一篇文章的方式,通过API平台自动组装报文并完成数据修改。
后续我将继续介绍ADI平台其它的重要功能,谢谢大家的阅读!
相关文章:
API低代码平台介绍6-数据库记录删除功能
数据库记录删除功能 在前续文章中我们介绍了如何插入和修改数据库记录,本篇文章会沿用之前的测试数据,介绍如何使用ADI平台定义一个删除目标数据库记录的接口,包括 单主键单表删除、复合主键单表删除、多表删除(整合前两者&#x…...
计算机基础之:硬件系统的性能评估标准
服务器时钟的性能通常涉及多个方面,主要包括准确性、稳定性、以及对系统性能的影响。以下是一些关键指标和衡量方法: 准确性: 时间偏移:测量服务器时钟与一个可靠时间源(如GPS时间、原子钟或NTP服务器)之间…...
高互动UI设计揭秘:动画效果如何提升用户体验
动画,由于其酷的视觉冲击,往往会产生极好的用户体验。UI设计中的动态效果可以使用户界面看起来更酷,特别是界面的功能动画,是UX设计的重要组成部分,不容忽视。为什么UI设计的动态效果如此重要?接下来&#…...
探索Java异常处理的奥秘:源码解析与高级实践
1. 引言 在Java编程的广阔天地中,异常处理是确保程序健壮性、稳定性和可维护性的重要基石。对于Java工程师而言,深入理解Java异常处理的机制,并能够在实践中灵活运用,是迈向卓越的重要一步。 2. 基本概念 在Java中,异常(Exception)是程序执行期间出现的不正常或错误情况…...
深入了解python函数与函数内存使用
函数的定义 函数作为代码复用的基本单元,可以帮助我们组织代码、减少重复、提高可读性和可维护性。 在 Python 中,函数本质上是对象,可以赋值给变量、存储在数据结构中、作为参数传递和返回。 函数与内存 函数的加载和调用过程中ÿ…...
Java面试----MySQL面试题
1.索引有哪些优缺点? MySQL索引作为一种提升数据库查询效率的重要机制,具有以下主要优点和缺点: 优点: 提高查询速度: 索引能够显著加速数据的检索过程,类似于书籍的目录,让数据库引擎能够快速…...
python从入门到精通2:缩进
在Python中,缩进(Indentation)是一个非常重要的语法元素,它用于表示代码块的结构。与其他许多编程语言使用大括号 {} 来定义代码块不同,Python使用缩进来确定代码块的开始和结束。这种简洁的语法使得Python代码更加清晰…...
了解CDN:提升网络性能和安全性的利器
在当今的数字时代,网站性能和安全性是每一个网站管理员必须关注的核心问题。内容分发网络(CDN,Content Delivery Network)作为解决这一问题的重要工具,逐渐成为主流。本文将详细介绍CDN的定义、作用及其工作原理&#…...
ChatGPT的工作原理
ChatGPT的工作原理可以详细分为以下几个步骤,下面将结合相关信息进行清晰、详细的介绍: 数据收集: ChatGPT首先会从大量的文本数据中收集信息,这些数据可能包括网页、新闻、书籍等多样化的来源。它还会特别关注和分析网络上的热点…...
基于DPU的云原生裸金属服务快速部署及存储解决方案
1. 背景介绍 1.1. 业务背景 在云原生技术迅速发展的当下,容器技术因其轻量级、可移植性和快速部署的特性而成为应用部署的主流选择,但裸金属服务器依然有其独特的价值和应用场景,是云原生架构中不可或缺的一部分。 裸金属服务器是一种高级…...
论文学习_Large Language Models Based Fuzzing Techniques: A Survey
论文名称发表时间发表期刊期刊等级研究单位Large Language Models Based Fuzzing Techniques: A Survey 2024年arXiv-悉尼大学 0.摘要 研究背景在软件发挥举足轻重作用的现代社会,软件安全和漏洞分析对软件开发至关重要,模糊测试作为一种高效的软件测试方法,并广泛应用于各个…...
响应式德米拉数字内容交易系统素材下载站模板
★模板说明★ 该数字交易系统设计非常完美,两种响应式模式,可打开边栏模式和盒子模式;八种网站颜色,四种风格颜色可供用户自行选择,还可在网站选背景图片;完美的分成系统、充值功能、个人中心等等都以html…...
数据库开发-MySQL
前言 首先来了解一下什么是数据库。 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。 像我们日常访问的电商网站京东,企业内部的管理系统OA、ERP、CRM这类的系统,以及大家每天都会刷的头条、抖音类的app…...
香港大带宽服务器高性能配置选择灵活
香港大带宽服务器是指在香港数据中心托管的,配备了高速网络连接的服务器。这些服务器通常用于需要大量数据传输和快速响应时间的应用,如视频流媒体、在线游戏、远程工作和大规模数据处理任务。具体分析如下,rak部落为您整理发布。 1. **内存配…...
Oracle中生僻汉字的解决办法
在Oracle数据库中处理生僻汉字时,主要面临的问题是某些字符集可能无法完全支持所有的汉字,特别是生僻字。以下是一些解决Oracle中生僻汉字问题的办法: 检查当前字符集: 使用SELECT USERENV(language) FROM dual;命令来查看当前数…...
在Kotlin中,`field`关键字是一个特殊的标识符,用于在属性的自定义getter和setter中访问backing field(存储属性值的实际字段)
在Kotlin中,field关键字是一个特殊的标识符,用于在属性的自定义getter和setter中访问backing field(存储属性值的实际字段)。Kotlin属性默认提供getter和setter方法,但当你需要自定义它们的行为时,可以使用…...
如何在 MySQL 中创建和使用事务?
目录 1. 环境准备 2. 创建事务 3. 事务执行 4. 事务撤消 5. 总结 事务是数据库区别于文件系统的重要特征之一,当我们有了事务就会让数据库始终保持一致,同时我们还能通过事务机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会…...
Python数据分析-对驾驶安全数据进行了预测
一、研究背景和意义 随着汽车保有量的不断增加,交通事故已成为全球范围内的重大公共安全问题。每年因交通事故造成的人员伤亡和财产损失给社会带来了巨大的负担。为了提高驾驶安全,减少交通事故的发生,许多研究致力于探索影响驾驶安全的因素…...
全志 Android 11:实现响应全局按键
一、篇头 最近实现热键想功能,简单总结了下全志平台Android 11 的响应全局热键的方法。 二、需求 实现全局热键,响应F-、AF、F三个按键,AF只用于启动调焦界面,F-和F除了可以启动调焦界面外,还用于调整镜头的焦距&…...
DVWA 靶场 Open HTTP Redirect 通关解析
前言 DVWA代表Damn Vulnerable Web Application,是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序,旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。 DVWA提供了一系列的漏洞场…...
Blender:渲染输出
一、渲染设置 渲染设置界面: 渲染器选择切换 Cycles渲染器 【文档】 Cycles渲染目标: Cycles是Blender用于产品级渲染,基于物理的路径跟踪器。主要关注于影视质量,更高质量的外观它旨在提供易于使用以及准确的物理渲染结果具有艺术…...
NTFS和exFAT哪个性能好 U盘格式化NTFS好还是exFAT好 mac不能读取移动硬盘怎么解决
文件系统的选择对存储设备的性能和兼容性有着重要影响。而NTFS和EXFAT作为两种常见的文件系统,它们各有特点,适用于不同的使用场景。我们将深入探讨NTFS和EXFAT的区别,帮助大家选择最适合自己需求的文件系统。 NTFS:稳定与性能的平…...
kafka的基本模型
kafka官网 线程和线程之间的数据交互 在jvm里不同的线程有自己的栈内存,但彼此之间交互可以在共享的内存中进行,即堆内存,堆内存会将这些消息放到队列中,具体实现jvm见,栈内存各自维护,堆内存大家共享 进…...
npm语义化版本和版本运算符
版本号组成 一个完整的版本号,由三部分组成:主版本号(major)、次版本号(minor)、修订版本号(patch),简称X.Y.Z,具体含义: 主版本号(major):项目(…...
孩子到了叛逆期,家长应该怎么教育孩子?
到了一定的年龄后,有些孩子会变得叛逆起来,那么对于家长来说,如何教育叛逆的孩子?孩子叛逆期教育方法有哪些呢? 叛逆期教育孩子用什么方法 一。要摒除父母对孩子居高临下的心态,放下身叚࿰…...
芋道源码 yudao-cloud 、Boot 文档,开发指南 看全部,破解[芋道快速开发平台 Boot + Cloud]
1、文档全部保存本地部署查看,真香 文档已抓取最新版本,2024.06.21。【唯一遗憾,表结构到2024.04月,已被限制放到知识星球】会员中心,支付中心,CRM,ERP,商城,公众号运行…...
工具函数-算法
1. 实现四舍五入,保留两位小数 const v 0.0635455; // 方式1,保留2位小数,返回的是number格式 const formatted Math.round(v * 100) / 100; // 方式2,保留2位小数,返回的是字符串格式 const formatted v.toFixed(…...
C# yolov8 OpenVINO 同步、异步接口视频推理
C# yolov8 OpenVINO 同步、异步接口视频推理 目录 效果 项目 代码 下载 效果 同步推理效果 异步推理效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading; using System.Windows.Form…...
【STM32入门学习】定时器与PWM的LED控制
目录 一、定时器与PWM介绍 1.1定时器 1.1.1定时器分类简介 1.1.2STM32定时器分类比较表 1.1.3定时器启动操作: 1.2 PWM 1.2.1 简介: 1.2.2PWM工作原理 1.2.3使用步骤: 二、定时器计数控制LED灯亮灭 2.1HAL库 2.1.1使用HAL库创建…...
PyTorch实战:模型训练中的特征图可视化技巧
1.特征图可视化,这种方法是最简单,输入一张照片,然后把网络中间某层的输出的特征图按通道作为图片进行可视化展示即可。 2.特征图可视化代码如下: def featuremap_visual(feature, out_dirNone, # 特征图保存路径文件save_feat…...
给别人做软件的网站/域名注册要多少钱
(一)什么是pca pca,也就是主成分分析法(principal component analysis),主要是用来对数据集进行降维处理。举个最简单的例子,我要根据姓名、年龄、头发的长度、身高、体重、皮肤的白皙程度(随便想的)等特征来预测一个人…...
菠菜网站开发/北京最新疫情
计算机等考二级C 语言精编教程1 章 程序设计基本概念1.1 程序和程序设计1.1.1 C 程序计算机现已广泛应用于社会生活的各个领域,成为大众化的现代工具。但是,不熟悉计算机的人仍然把它想象得十分神秘。其实,计算机不过是一种具有内部存储能力、…...
用wordpress二级导航栏/凡科小程序
Re库介绍Re库是Python的标准库,主要用于字符串匹配。调用方式:import re正则表达式的表示类型*raw string 类型(原生字符串类型):re库采用raw string类型表示正则表达式,表示为:rtext例如:r[1-9]\d{5}r\d{3…...
网站建设需要政府集中采购吗/微信群发软件
概述 look 命令可以用于匹配以给定字符串开头的行。只查找行首字符串匹配的行。 look 命令查找的结果显示文件中包含字符串作为前缀的任何行。由于 look 执行二分查找,因此必须对文件中的行进行排序。如果未指定 file,则使用文件 /usr/share/dict/words…...
手机访问网站下面电话怎么做/的搜索引擎优化
需要备份的资料: miui系统资料:电话、短信、便签,有小米云账号wifi下自己会备份好的。 应用数据:微信、qq 聊天记录; UC浏览器收藏夹。 root后, rootexplorer,选择某个文件夹或文件,…...
巢湖做网站/网络推广公司简介模板
匆匆的记录一下,生日快乐! 我是个蒸不烂,煮不熟,捶不扁,炒不爆,响珰珰一粒铜豌豆,恁子弟每谁教你钻入他锄不断,斫不下,解不开,顿不脱,慢腾腾千层锦…...