Mybatis+Mysql&Oracle递归查询

多层环境室内定位系统综述总结 本文是一篇发表于2025年《IEEE Access》期刊的综述论文,由埃及开罗美国大学与卡塔尔卡内基梅隆大学团队合作完成,聚焦多层环境室内定位系统的核心挑战、技术方案及未来方向,填补了该领域缺乏全面综述的空白。 阅读详情

 

前导:我们在开发过程中常用到递归查询,如菜单,一般我们都是用ztree实现菜单,但是数据查询时需要用到递归语句

1、建表:

create table menu{
	menu_Id  varchar(31),
	menu_name varchar(31),
	menu_level char(1),
	parent_Id varchar(31)
}

2、建JavaBean


package org.gtiles.components.courseinfo.unit.dao;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName Menu
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author huguangjun
 * @date 2016年6月28日 下午7:52:41
 */
public class Menu {
	public String menuId;
	public String menuName;
	public String menuLevel;
	public String parentId;
	public List<Menu> childList = new ArrayList<Menu>();
	public String getMenuId() {
		return menuId;
	}
	public void setMenuId(String menuId) {
		this.menuId = menuId;
	}
	public String getMenuName() {
		return menuName;
	}
	public void setMenuName(String menuName) {
		this.menuName = menuName;
	}
	public String getMenuLevel() {
		return menuLevel;
	}
	public void setMenuLevel(String menuLevel) {
		this.menuLevel = menuLevel;
	}
	public String getParentId() {
		return parentId;
	}
	public void setParentId(String parentId) {
		this.parentId = parentId;
	}
	public List<Menu> getChildList() {
		return childList;
	}
	public void setChildList(List<Menu> childList) {
		this.childList = childList;
	}
	

}

3、orcle中递归查询语句

select t.id AS menuid,t.menu_name AS menuName,t.Parent_Id AS paterId from aut_menu_t t 
where 1=1 START WITH  t.menu_id='root'  connect by  t.Parent_Id=  PRIOR t.menu_id

4、 mybatis+mysql实现递归查询

	<!--查询所有,使用resultMap返回结果集,将数据组装成树形结构  -->
	 <select id="findMenuAll" resultMap="menu_map">
	 	select * from menu where menu_level='1'
	 </select>
	 <!-- 返回结果集 -->
	 <resultMap type="....entity.menu" id="menu_map">
	 	<id column="menu_id" property="menuId"/>
	 	<result column="menu_name" property="menu_name"/>
	 	<result column="menu_level" property="menuLevel"/>
	 	<collection property="childList"  column="menu_id " ofType="....entity.menu"
	 	 select="findMenuByparentId"></collection>
	 </resultMap>
	 
	 <!-- 根据父键查询 -->
	 <select id="findMenuByparentId" parameterType="String" resultMap="menu_map">
	 	select * from menu where parent_id=#{menuId}
	 </select>

将数据在mybatis xml文件中将数据就封装好,免得在java程序中再次封装数据

5、页面上读取数据则此处使用freemarker为列子

 <#list menulist as menu>
	${menu.menuName}
 	<#list menu.childList asmenuChild>
		${menuChild.menuName}
	<#list>
<#list>

 

以上是从数据库层面处理,但是如是高并发这样效率的会很低。还可以使用java实现在内存中处理

tsmc12: m0po max length问题(H384.M0_PO.L.1) 手动调整可以挪cell,制造上下两个row相对的至少一个site的空间,通过插普通filler来解决,这里需要注意的是,tsmc12有via0的规则,需要让via0落在via0 grid上。在pt eco之后会有一些m0po max length问题出现,大部分问题都可以通过替换decap来解决,少部分由于局部density过高,需要手动调整。更多学习内容请关注「拾陆楼」知识星球。#ICC2中替换decap的参考脚本。 阅读详情

相关推荐

踩坑ubuntu24.04 编译vtk9.3.1的安卓版本

NDK官方明确废弃了旧版 armeabi ABI,强制使用armeabi-v7a或arm64-v8a。错误信息显示你的构建系统仍在使用超级构建(superbuild)模式,并且内部引用了已不再支持的。生成的合并库: $(pwd)/libvtk_combined.a"超级构建过程可能内部未充分考虑现代NDK变化导致内部配置ARM老ABI,重复失败。echo "正在提取所有.o文件..."echo "合并前所有库的总大小:"# 提取所有.a文件中的.o文件。echo "创建合并库..."

zhangyihu321的专栏 1891

Mybatis中实现递归查询

https://blog.youkuaiyun.com/janet796/article/details/79500349 在Mybatis中实现递归查询,父类嵌套子类 swagger测试结果: { "status": 0, "data": { "pageNum": 1, "pageSize": 11, "size": 2, "startRow": 1, "endRow": 2, "total": 2, "pages": 1, "list": [

Qfoom的博客 2840

多层感知机 Multilayer Perceptron | MLP

本文主要简单介绍了多层感知机的基本概念,优缺点,应用场景,建模时的注意事项,评价指标,实现方法,python示例和模型的参数等。

JasonH2021的博客 3万+

MyBatis递归查询

@Select @Select("select * from file_info t where t.id = #{id}") FileInfo getById(String id); @Insert @Insert("insert into file_info(id, contentType, size, path, url, type, createTime, updateTime) values(#{id}, #{contentType}, #{size}, #{path}, #{url},

骑大马挎大刀 1950

手把手教你用STM32CubeMX配置I3C通信(含动态地址分配实战)

本文提供了一份基于STM32CubeMX配置I3C通信的实战指南,重点讲解了动态地址分配的实现步骤。通过详细的工程配置、从设备枚举、CCC命令使用及数据读写示例,帮助开发者快速掌握这一高效通信协议,以替代传统的I2C或SPI接口,满足多传感器连接与低功耗设计需求。

c8d9e0f1的博客 542

Cadence创建异形焊盘教程(详细操作)

背景:一些常见的矩形/圆形焊盘,设置参数就可。碰到非规则的一些焊盘,那只能用Cadence Allegro PCB来画咯。 一、新建图形 【File】——>【New…】 弹出如下窗口,选择绘制的类型Shape symbol、路径,输入名字 二、设置参数 【Setup】——>【Design Parameters…】 Enhanced display modes:增强型显示模型。全部勾选上。 在【Design】设置单位为mm 设置偏移量(-50,-50) 三、绘制图形 1、找到原点,即参考

qq_42057393的博客 2万+

Mybatis中使用递归查询

正向递归和反向递归,主要的配置不同在于主查询语句的查询条件和复合查询语句里collection的column。

mcl201900的博客 2044

Elsevier投稿实战:从ESWA模板到录用通知的全流程拆解

本文详细拆解了Elsevier旗下期刊ESWA(Expert Systems With Applications)的投稿全流程,从模板选择、投稿系统操作到审稿意见回复和录用后注意事项。重点分享了单栏LaTeX模板调整、APA文献格式处理、Highlights撰写技巧等实战经验,帮助研究者高效完成投稿并提升录用概率。

weixin_32715349的博客 238

MyBatis递归查询学习

上面都不符合要求,那就自己写吧,自己写了一套递归,但是又感觉不合适,因为如果要在程序中进行递归查询必须要读取数据库中所有用户数据到服务器中,如果数据量大的话服务器就崩了(而且我就是个后台程序啊!我们的这个需求符合树形结构,所以树状查询才符合业务要求(之前找到过一篇自己写的树状结构工具的文章找不到了,写的挺好的可惜的是他是查询父级和下面子集的,不符合业务要求),我们需要的是向下树状查找.这样就也是使用递归进行查询了,以前也没用过mybatis递归查询过,一条sql有时候确实感觉挺爽的,所以深入学习一下.

waooi的博客 1498

手把手教你打造CTF动态靶场

公司想搞一个CTF比赛,需要一个竞赛靶场,于是这个任务就落在了我的身上,平台是利用CTFd框架,基于docker搭建的动态靶场,搭建过程中遇到的坑比较多,这里我会把每一个遇到的坑都指出来。我搭建的是CTFd的3.X的版本。第一次搭建的话,搭建的过程会有些痛苦,但是搭建完成后会越来越熟练,这个平台的可用性还是很高的。由于搭建的过程中遇到的坑太多了,各种各样的问题,所以决定写下这篇文章,把所有的坑都指出来,也算为后边想搭这个平台的小伙伴指一条路。Taps:资源来源:星海安全实验室如果你也对网络安全&黑客。

Python栈 4931

泛微Ecology流程数据表结构解析:workflow_requestbase和workflow_currentoperator到底怎么关联查询?

本文深入解析泛微Ecology系统中workflow_requestbase和workflow_currentoperator表的结构与关联机制,提供SQL查询语句示例,帮助开发者高效查询流程数据。涵盖待办事项、已办事项、办结事项和流程监控等典型场景,并分享性能优化技巧和常见问题排查指南。

weixin_33738555的博客 803

Java程序递归及mybatis递归查询

之前项目组有个需求,定时同步机构的信息。已知三方接口由于返回数据量很大,所以最后需要三方提供一个可根据机构编号获取当前机构及子机构信息的接口。而不是一次性返回全部机构信息!由于这次需求也用到了递归,所以记录下!

qq_37342720的博客 1313

【数据集】全球大气空气柱平均甲烷(XCH₄)和一氧化碳(XCO)浓度数据集 TROPOMI/WFMD

全球大气空气柱平均甲烷(XCH₄)和一氧化碳(XCO)浓度数据集 TROPOMI/WFMD

WW、forever的博客 387

mybatis 树 递归查询

mybatis 树 递归查询

global_coding的博客 1578

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

使用mybatis实现递归查询,mybatis递归查询

由于部门的层级不可控,因此如果我想要获取所有部门的完整json的话,就要采用递归调用,这里的递归调用我们可以利用MyBatis的ResultMap中的collection实现,核心代码如下 <resultMap id="BaseResultMap" type="org.sang.bean.Department"> <id property="id" column="id"/> <result column="name" property="name"/>

世上哪有什么岁月静好,不过是有人替你负重前行 6146

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

mybatis的使用技巧3——mybatis如何实现树形结构查询及其一对多和递归功能查询详解

例如需要查询树形结构,一对多的数据集,递归查询如省市区县镇层级联动等业务时,都可以参考如下的写法,无需在代码中动态遍历赋值,效率高,易用性强。

w10463672p的博客 1780

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Mybatis+Mysql 实现向下递归查询

说到递归查询,大家可以想到的技术实现方式主要如下几种:1、各种主流应用开发语言本身通过算法实现2、各种数据库引擎自身提供的算法实现本文提到主要是针对第二种和第一种的结合以上实现方式涉及到了MySQL的with as 语法,此实现方式必须给予MySQL 8.0.x版本,5.x.x版本不支持,解决方案:1、升级数据库版本为8.x版本2、采用5.x版本语法FIND_IN_SET,如下代码示例3、采用应用开发语言实现,如Java代码实现。

JackieJia的博客 2121

Mybatis递归查询树结构

Mybatis递归查询树结构

乐其所乐的计算机学习空间 1093

MyBatis使用递归查询来实现多级菜单的功能

MyBatis使用递归查询来实现多级菜单的功能

李长渊的博客 2073

mybatis递归查询

最近在写一个小程序,需要实现业务无限极分类,就是业务下有无限下拉子菜单,需要后台返回包括子节点的所有的数据 数据库表结构如下: business表 项目代码: 1、编写business实体类 import java.util.Date; import java.util.List; //业务类实体类 public class Business { private Integer id; //业务名 private String businessName;

石懒猪很懒的博客 2425

Mybatis collection 递归查询并自动装填所有子节点(多参数查询传入参数方法)

需求:项目中想实现无限下拉子菜单功能,后台就需要返回包括子节点的所有数据 数据库表结构如下: 上次是通过在java程序中递归不断通过父级id查询子节点实现的: https://blog.youkuaiyun.com/lianzhang861/article/details/83783796 但这样需要不断连接和断开数据库,比较费时 mybatis可以在数据库内部实现递归查询被自动装填...

lianzhang861的博客 9888

mybatis递归查询树

所谓的树,说白了就是父子关系,就是爹与儿子的关系,只需要按照格式返回,就可以成树. 找爹的sql(pid=0表示跟节点) <select id="selectList1" resultMap="BaseTreeResultMap"> select id,pid,warehouse_name as warehouseName from BASE_WAREHOUSE where pid = 0 </select> 找儿子的sql &l

Java_xiaobai1的博客 946

Mybatis实现递归查询查找子查询

Mybatis实现递归查询查找子查询1.简单的数据结构2.实体类3.Mapper文件4.查询结果 1.简单的数据结构 2.实体类 import java.util.List; /** * @ClassName AuditTabRele * @Description tab 关系表 * @Author wangyj * @Date 19/11/7 18:38 */ public cl...

Leisurelyc的博客 1756

mybaits查询树形结构数据(递归)

业务中有一张数据库表中存放树形结构数据,查询时,根据EntityType的数据集合,需要查询出其对应的所有子级数据。 其中数据库表结构如下: 其中AbstractEntityID为id,AbstractEntityParentID为当前数据的父节点id,顶层节点的id为空。 1. entity 首先我们创建数据库表对应的entity,其内容如下: @Setter @Getter public class AbstractEntityTree { /** * 设备树类型 */

蓝色格子ren的博客 3373

mybatis collection 递归查询得出子级列表

mybatis collection 递归查询得出子级列表

chenliup的博客 1231
上一篇: Java生成随机验证码
下一篇: Java使用SWFTools将PDF转成swf并使用flexpaper播放PDF
make_a_difference
博客等级 码龄14年 10粉丝 17原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值