java的递归查询大体思路

场景:递归查询是我们开发中很常见的,如果没有一个比较好的思路,这将会让我们很头疼。

我这里介绍一个查询部门的例子,希望能给你一些启发

部门sql

-- ----------------------------
--  Table structure for `sys_dept`
-- ----------------------------
DROP TABLE IF EXISTS `sys_dept`;
CREATE TABLE `sys_dept` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘部门id‘,
  `name` varchar(20) NOT NULL DEFAULT ‘‘ COMMENT ‘部门名称‘,
  `parent_id` int(11) NOT NULL DEFAULT ‘0‘ COMMENT ‘上级部门id‘,
  `level` varchar(200) NOT NULL DEFAULT ‘‘ COMMENT ‘部门层级‘,
  `seq` int(11) NOT NULL DEFAULT ‘0‘ COMMENT ‘部门在当前层级下的顺序,由小到大‘,
  `remark` varchar(200) DEFAULT ‘‘ COMMENT ‘备注‘,
  `operator` varchar(20) NOT NULL DEFAULT ‘‘ COMMENT ‘操作者‘,
  `operate_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘最后一次操作时间‘,
  `operate_ip` varchar(20) NOT NULL DEFAULT ‘‘ COMMENT ‘最后一次更新操作者的ip地址‘,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4;

-- ----------------------------
--  Records of `sys_dept`
-- ----------------------------
BEGIN;
INSERT INTO `sys_dept` VALUES (‘1‘, ‘技术部‘, ‘0‘, ‘0‘, ‘1‘, ‘技术部‘, ‘system‘, ‘2017-10-11 07:21:40‘, ‘127.0.0.1‘), (‘2‘, ‘后端开发‘, ‘1‘, ‘0.1‘, ‘1‘, ‘后端‘, ‘system-update‘, ‘2017-10-12 07:56:16‘, ‘127.0.0.1‘), (‘3‘, ‘前端开发‘, ‘1‘, ‘0.1‘, ‘2‘, ‘‘, ‘system-update‘, ‘2017-10-14 11:29:45‘, ‘127.0.0.1‘), (‘4‘, ‘UI设计‘, ‘1‘, ‘0.1‘, ‘3‘, ‘‘, ‘system‘, ‘2017-10-12 07:55:43‘, ‘127.0.0.1‘), (‘11‘, ‘产品部‘, ‘0‘, ‘0‘, ‘2‘, ‘‘, ‘Admin‘, ‘2017-10-16 22:52:29‘, ‘0:0:0:0:0:0:0:1‘), (‘12‘, ‘客服部‘, ‘0‘, ‘0‘, ‘4‘, ‘‘, ‘Admin‘, ‘2017-10-17 00:22:55‘, ‘0:0:0:0:0:0:0:1‘);
COMMIT;

原文地址:https://www.cnblogs.com/coder-lzh/p/8673156.html

时间: 2024-10-16 21:08:37

java的递归查询大体思路的相关文章

Java Class冲突定位思路

JAVA的父类委托加载机制,再带来巨大便利性和效率提升的同时的同时也带来不少麻烦,最直接的就是类冲突造成的问题,以下场景不知道诸位是不是有点熟悉. 本文定义的类冲突定义为相同命名空间下的class分散在不通的jar包之中. 1.造成的注入系统混乱. 2.造成类型判断系统混乱,例如 if ((paramObject instanceof CLASSS))判断失灵 3.不同版本class实现方法有升级 例如Ajar包支持getXX(A,B),而另外jar中却只有getXX(A) 4.在数据在运算中的

外包项目大体思路

项目采用的是MVC模式对模块进行管理-沿用了家宝贝项目框架 一.首页模块(大概实现思路) 1 首页模块可分为三块.第一块在tableHeaderView上封装的图片轮播器.第二,三块是直接添加到tableView的cell上了. 2 八个按钮的位置是九宫格排布 分装的view高度是根据按钮个数来动态计算的. 3 第三个模块也是九宫格布局完成 这里也可以用UICollectionView来做这块. // -----------------------------------------------

后台寻路系统的大体思路与流程

总的思路就是: 通过前台unity的navigation的的接口:  获得顶点和三角形集合数据, 经过转换, 生成recastnavigation插件寻路模块detour需要的导航数据 故制作了工具MakeNavmeshData生成detour需要的导航数据, 独立开来,以节约后台服务器启动时间 后台服务器地图模块初始加载后台导航数据, 生成navmesh_query, 从而实现寻路

Java Map底层实现思路

package cn.com.commsoft.map; public class MyMap { MyEntry[] arr = new MyEntry[100]; int size; /** * 采用hash算法实现map,(每个对象都有一个地址, * 根据地址生成的一个hash码,由于每个对象的地址都不一样,所以 * 生成的hash码是唯一的) * @param key * @param value */ public void put(Object key, Object value){

大体思路

基于Java 设计一门语言 编写该语言解释/编译器 编写该语言的虚拟机 实现底层汇编指令

Java进程故障排查思路及步骤

故障场景 Java进程出现问题,通常表现出如下现象: Web应用响应时间长/超时,甚至不响应 CPU使用率极高/低,频繁出现Full GC,甚至OutOfMemoryError 响应时间长.超时,甚至不响应,这是最直观的表现:而CPU使用率极高或极低,频繁出现Full GC,这些需要借助系统日志或者监控辅助发现. 原因分析 针对响应时间长.超时,甚至不响应,这是一个综合性的问题导致的,可能并不单纯是应用程序本身的问题,如果后端还接了数据存储系统,除了排查应用程序本身的问题之外,还需要排查应用所依

java实验一程序思路等

设计思想:定义一个int的对象sum来存储和,利用for循环将args的值赋给arg,将arg转换成int类型,同时sum的值加上arg,这样将参数依次相加,最后将sum输出. 程序流程图: 源程序代码: package shiyan1; public class shiyan1 { public static void main(String[] args) { // TODO Auto-generated method stub int sum=0; for(String arg:args)

Java求和的整体思路

一.    设计思想: 设计这个程序我们需要考虑到参数的输入,并且可以输入多个参数,以及为用户考虑到各种的边界问题.首先第一步我们应该给出输入参数的语句,让用户可以输入.第二步我们应对其进行参数个数的输出,看是否输入的参数,如果参数为0,提示用户输入的参数为 0,然后就是输出的参数个数输出给用户.第三步就是用int类型对其参数进行强制转化,然后用for循环对其进行相加.最后一步就是将得到的结果输出. 三:源代码 //多个参数求和问题 //zhanxinwu, September 26th,201

Loadrunner脚本编程(1)-大体思路

http://www.360doc.com/content/10/0806/13/1698198_44076570.shtml 就目前的了解.Loadrunner的脚本语言其实和C没什么区别.他内部的好多机制都是C实现的. 不过是一种“类C” 所以我从几个方面分析 1:定义常量变量和C一样 2:LR函数的参数使用与C有点不一样, 在LR中,C的变量和LR的参数是不一样的.任何C的变量都不能被LR的函数直接调用.应该用lr_eval_string来取值. 3:什么循环语句,选择语句都和C一样 4: