递归:删除中的循环递归说明

典型应用:收藏夹删除,文件夹删除,产品类别删除,站点类别删除等。
达到要求:在删除当前记录的时候,判断是否存在子级记录,如果存在也要级联删除,循环判断只到将该记录下的所有子级记录全部删除为止。
数据表设计特点:任何表的设计都以ID为标示列,如果设计上下级关系的表,那么存在一个parent_id(上级ID)列
数据表结构举例:
中国(00)
湖南(00 01)
长沙市(00 01 03)
上海(00 02)
浦东新区(00 02 04)
闵行区(00 02 05)
浦江镇(00 02 05 06)
说明:最后的两位数表示当前的记录ID,前面的数据表示该记录的全部上级关系。


下面是例子的部分说明:
第一步:创建数据库表
第二步:递归删除关键代码

1〉数据表设计:
create table tbl_typeNode(
id int not null primary key,
name varchar(20),
parent_id int not null
);

--默认第一级节点parent_id为0
--添加测试数据
insert into typeNode values
(1,'中国',0),
(2,'湖南',1),
(3,'上海',1),
(4,'浦东新区',3),
(5,'闵行区',3),
(6,'浦江镇',5),
(7,'长沙市',2);

--查询数据是否添加成功
select * from typeNode;

实现要求:如果将上海删除,必须将它下面的浦东新区,闵行区/浦江镇,全部都级联删除。
支持驱动:mysql-connector-java-3.0.17-ga-bin.jar

数据库连接字符串: com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/test
root/

2〉递归删除代码如下:
public void deleteNode(String id) {
//查询全部的数据库中记录
List listTemp = typeNodeDao.listTypeNode();
for (int i = 0; i < listTemp.size(); i++) {
TypeNode typeNode= (TypeNode) listTemp.get(i);
//判断该ID下面是否存在下级ID
if (id.equals(typeNode.getParentId())) {
//如果条件成立,循环调用自身方法
deleteNode(typeNode.getId());
}
}
//删除记录
typeNodeDao.deleteTypeNode(id);
}
备注:
1.typeNodeDao是DAO,数据库操作对象,操作tbl_typeNode数据库表。
方法:listTypeNode:查询全部的类型节点数据
deleteTypeNode:根据当前传入的ID删除该类型节点记录
2.TypeNode是tbl_typeNode数据表映射为JAVA封装MODEL对象,主要包括id,name,parentId成员变量。
二叉搜索树的插入、查找、删除递归与非递归实现 二叉搜索树: 1、要么为一个空树 2、要么不是一个空树 2.1、如果有左子树,对于该树中的每一个节点来说,该节点的左子树上的所有节点都要比该节点小 2.2、如果有右子树,对于该树中的每一个节点来说,该节点的右子树上的所有节点都要比该节点大 下面我们采用递归方法以及非递归方法来实现一下对于二叉搜索树的插入、查找以及删除操作。 1、基本操作:这里的基本操作思路简单,且在... 阅读详情

相关推荐

【OpenClaw 实战】Ubuntu 双机 Gateway + Node 部署全流程 + 所有常见坑(2026版)

如果你只是需要浏览器自动化、截屏、简单系统查询 →Node 模式够用,别折腾 exec。如果你需要 GOLD 运行任意 shell 命令、git、npm、自定义脚本 →必须升级成 Gateway。bind lan + pairing approve + token 统一。后续想玩多 Agent 团队,优先考虑双/多 Gateway + 聊天通道互发(社区已有不少成功案例)。欢迎评论区留言你的环境和报错,一起交流!

hampeter的博客 1513

递归删除文件

1.得到文件夹中的所有文件 2.如果还是文件夹就递归:调用自身 3.不是就删除里面的文件 4.所有文件夹的文件都被删除后 5.最后删除整个文件夹

lm12032015的博客 1481

Python APP反爬实战:Frida+Charles抓包,破解签名校验

Charles抓包定位参数 → jadx-gui反编译找函数 → Frida Hook拿密钥/规则 → Python还原签名算法;Frida的核心价值:Hook住APP的加密函数,拿到“输入(密钥/参数)+输出(签名)”,无需懂复杂的逆向底层;严格对齐APP的参数排序、拼接规则、加密算法,差一点都会验证失败。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1509

递归删除文件和文件夹

碰到压缩包解压出来的文件夹里面有大几十万个文件,Windows删除太慢,测试python删除

rongDang的博客 669

Linux 递归删除大量的文件

因此,如果你使用的是 SSD,可以考虑使用多线程删除来加速操作。在删除大量文件时,系统会自动进行磁盘写入同步操作,这可能会影响速度。虽然不会直接加速删除过程,但可以减少潜在的I/O延迟。在删除大量文件时,系统 I/O 可能会变得非常繁忙,影响系统的响应速度。通常用于文件同步,但你可以利用它来快速删除目录中的所有文件。这样可以让删除操作在后台更平稳地进行,而不会对前台的其他操作造成太大的影响。通过上述方法,可以有效地加快递归删除大量文件和文件夹的速度,尤其是使用。,这样可以加速文件删除操作。

qq_41505080的博客 2495

Linux学习

ls: 列出目录 cd:切换目录 pwd:显示目前的目录 mkdir:创建一个新的目录 rmdir:删除一个空的目录 cp: 复制文件或目录 rm: 移除文件或目录 mv: 移动文件与目录,或修改文件与目录的名称 ls (列出目录) 选项与参数: -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用) -l :长数据串列出,包含文件的属性与权限等等数据;(常用) cd (切换目录) ..

qq_44771537的博客 1990

递归删除树状数据/递归删除树形结构

递归删除树状结构的实现

程序员小雨的博客 1053

JS 实现递归循环删除某项元素

JS 实现递归循环删除某项元素

清云 1978

递归循环

围绕将循环转换为递归展开

2503_90403439的博客 2113

递归循环的通用方法

1.递归 定义:程序调用自身的编程技巧称为递归。 栈与递归的关系:递归是借助于系统栈来实现的。每次递归调用,系统都要为该次调用分配一系列的栈空间用于存放此次调用的相关信息:返回地址,局部变量等。当调用完成时,就从栈空间内释放这些单元,在该函数没有完成前,分配的这些单元将一直保存着不被释放。 2.递归转化为循环 记得有人说过“所有递归都能转化为循环”,某晚睡不着思考了一下这个问题

To be what you what to be! 2万+

递归循环之间不得不说的故事

递归直通车帝龟出世寻欢初识帝龟初现端倪来龙去脉迷失的帝龟我要这递归有何用?考考你 帝龟出世 大家好,我是今天的主角,帝龟! 一只自带帝王之气的乌龟殿下 - - wo来自遥远的东海之滨,每天清晨我…咳咳, 有些扯远了 下面进入重点: 寻欢初识帝龟 下文为循环递归的一些基本概念 循环:重复性的执行某段程序 "寻欢"和"帝龟"不一样,它是个直性子,它会一次性干脆利落的把活全都干完,...

Qizhi_Hu的博客 1880

mysql递归查询,递归删除存储过程实现

之前写过oracle和mysql递归查询和删除,这次再补上一个mysql递归实现。 1、实现原理 (1)删除临时表 (2)创建临时表并清空 (3)利用临时表用来存放递归遍历出来的id列表 (4)从临时表中查询id列表 2、递归查询储存过程代码 存储过程函数名称:findMenuChildList(menuPid varchar(32)) BEGIN DECLARE v_m...

GIS技术方向,GIS地图技术分享(GIS入门、Openlayers教程、Leaflet教程),做最好的GIS地图开发教程。关注博主公众号:eguid 2460

递归循环哪个效率高_递归循环的通用方法

搬运自以前的csdn博客utobe67递归定义:程序调用自身的编程技巧称为递归。栈与递归的关系:递归是借助于系统栈来实现的。每次递归调用,系统都要为该次调用分配一系列的栈空间用于存放此次调用的相关信息:返回地址,局部变量等。当调用完成时,就从栈空间内释放这些单元,在该函数没有完成前,分配的这些单元将一直保存着不被释放。递归转化为循环记得有人说过“所有递归都能转化为循环”,某晚睡不着思考了一下这个问...

weixin_30000283的博客 2279

python 递归函数与循环的区别_关于递归:While循环中的递归函数(Python)

因此,我正在学习Python中的递归,并且我有一些代码可以找到用户输入的数字的阶乘。def recursion(x):if x == 1:return 1else:return(x * recursion(x - 1))num = int(input("Enter a non-negative integer:"))if num >= 1:print("The factorial of", ...

weixin_39843338的博客 366

第二篇:Java——使用递归删除集合中重复元素

使用递归删除集合中重复元素 ------------------------------------------------------------------------------------------- 方法一:采用老式for循环 public class Test2 { public static void main(String[] args) { /创建集合 ...

qq_43411550的博客 6671

删除无限循环的文件夹-删除递归文件夹

删除无限循环的文件夹-删除递归文件夹 最近本人的电脑(Win 7)中某个文件夹出现了无限循环,如下:D:\software\app\note\bin\app\note\bin\app\note\bin\app\note\bin\…… 直接删除或通过rmdir 命令都无法将其删除。会提示源文件长度 解决办法: 假如要删除第一层bin文件夹下的app文件夹。 1. 在...

weixin_30571465的博客 1004

java实现递归删除目录及目录下所有文件,递归和非递归方式都有

public void delete(String path){ File f=new File(path); if(f.isDirectory()){//如果是目录,先递归删除 String[] list=f.list(); for(int i=0;i<list.length;i++){ delete(path+"

u014574317的博客 1444

添加删除完善性功能——javascript循环添加与循环删除

业务:添加删除权限的完善性功能,一是循环添加(子选父必选),一是循环删除(父删子必删)。 循环添加没有问题: //递归循环添加父 function addParent(chkValue) { var pNode = document.getElementById(chkValue); if(pNode!=null){ pNode.checked = true; $.get("pe

姚双双 廊坊师范学院七期信息技术提高班 1311

java递归删除list_Java使用递归删除集合中重复元素的两种方法

重要:本文最后更新于2019-01-30 09:56:28,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗。递归这种结构真的是很神奇,有好几次遇到的问题都是通过递归解决的。不知道大家在写程序的时候是不是经常使用集合,然而集合中的数据还不如自己所愿,需要剔除一些重复数据的情况?一般都是遍历集合然后删除,今天给大家介绍两种Java使用递归删除集合中重复元素的方法。方法一:采用老式for...

weixin_33260057的博客 917

大神修改版OD,反反调试,过驱动保护.zip

自带驱动级的反反调试插件反反调试,过数字签名校验,过虚拟机检测,,过PG,隐藏PEB(R3),隐藏进程,保护进程,伪装调试器,伪装父进程

上一篇: JDBC:Mysql数据库连接基础工具类
下一篇: extremecomponents pdf 导出中文问题分析
全新时代
博客等级 码龄19年 3粉丝 14原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值