Java递归,查询与搜索相关的全部的数据

图片说明

每一个门店都是有id和parentId,只是总店的parentId为null而已,我要查询其中一个门店,假如说,我要查询分店3,我能把与门店3有关联的门店总门店到分店6都能查询出来。用递归的方式来查询。

0

3个回答

看不懂你的问题在哪里?

0
wuxianzhenjia
无限真假 回复deluhorse: 是呀,因为分店3与分店2也相关联,我现在已经完成能够平级查询了,就是输入总店id的时候,只出现总店一个门店,输入分店1或者分店2的id,分店1和分店2都能出来,这就是平级查询,就是向下查询没有做出来,这个要用递归方法,我对于递归不是很熟悉,所以希望您不吝赐教
大约 2 年之前 回复
weixin_38780256
deluhorse 回复无限真假: 你输入2的id,然后查询3的信息?????
大约 2 年之前 回复
wuxianzhenjia
无限真假 意思就是 假如我按照id查询 我输入一个id 比如我输入的是分店2的id002,然后返回给我一个List,里面包含所有与分店3相关的门店,就是如图全部的门店,都能查询出来,他的父门店,他的兄弟门店,他的子门店,他兄弟门店的子门店。都能查询出来,请问您明白了吗?
大约 2 年之前 回复

// 首先根据其中一个门店,查到他的总们店, 然后递归取出总们店下所有子门店

public static void main(String[] args) {
Store current = new Store();
while(current.parent != null){
current=current.parent;
}
findStore(current);
}
public static List findStore(Store s){
List re = new ArrayList<>();
re.add(s);
if(s.child != null){
for (Store c: s.child){
re.addAll(findStore(c));
}
}
return re;
}
static class Store {
Integer id ;
Store parent;
List child;
}

0
/**
     * 描述:查询所有部门
     * @return 返回结果集
     */
    @Override
    public List<DepartmentPojo> queryAllDepartment() {
        Integer depParentId=0;
        List<DepartmentPojo> list = departmentMapper.queryAllDepartment(depParentId);
        for (int i = 0; i < list.size(); i++) {
            setChildrens(list.get(i));
        }
        return list;
    }

    /**
     * 描述:递归所有子部门以及部门的角色
     * @param children
     */
    public void setChildrens(DepartmentPojo children){
        children.setChildren(departmentMapper.queryAllDepartment(children.getDepId()));
        children.setRolePojoList(departmentMapper.queryDepartmentRole(children.getDepId()));
        if(children.getChildren().size()!=0){
            for (int i = 0; i < children.getChildren().size(); i++) {
                setChildrens(children.getChildren().get(i));
            }
        }
    }
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
递归实现层级查询菜单
        在层级查询菜单时意见有所分歧,想法有两种一种是动态查询,但是会增加服务器的压力,另一种方法是全部返回的数据,由前端去控制展示效果。nn        层级查询树状菜单,想到使用递归去做遍历查询,在此记录一下nn        实体类和到层就不再生成代码,核心代码是service层的逻辑处理主要包括两部分内容nnn//层级获取菜单npublic List&amp;lt;MenuEntity&amp;...
java递归跟查询所有数据及for循环查询所有数据
package com.topsts.gas.user.utils;import java.util.List;import org.mockito.verification.VerificationAfterDelay;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.context...
ztree递归查询某节点下的所有子节点
今天老大给了我一个需求,我项目里有个机构树,点击左侧的机构,必须显示它下面所有机构的用户信息,如下图所示:rnrnrnrnrn我的思路是这样的rn1.当用户点击左侧某一个节点时,传到后台的是一个当前节点id,然后用当前节点id去机构表查它下面的所有子机构(用递归方式),最后结果拼接成一个机构的字符串,rn用逗号分隔,格式为a0001,10002,.....rn2.查询用户表,把第一步获得的结果作为
java递归查询菜单树
nn public class Menu {n private Integer menuId;//菜单主键自增IDnn private Integer menuPid;//菜单父ID,0为根目录nn private String menuLeafNode;//是否是叶子节点 1:是 0:否nn private String menuName;//菜单名称nn p...
无限级树正向查找、反向查找例子【递归实现】
无限级树正向查找、反向查找例子【递归实现】 无限级树正向查找、反向查找例子【递归实现】 无限级树正向查找、反向查找例子【递归实现】
java获取elasticsearch所有的数据
在贴出程序之前先提出几个问题,首先在搜索引擎中任何时候涉及到批量数据处理的时候,都不可能在一次请求中获取到所有的数据,这样是为了节省内存,而且全部拿到也不现实,一般都是分页获取的,也就是说先给你展示,下一页的话通过你的点击会从上次展示的位置往后获取数据,而这个位置你可以理解为位置指针。就这样循环获取循环请求才能真正的将数据全部拿到。下面的程序我没有做整理,不过认真看的话,你呢个get到你的点。nn...
es6进行查询操作等
@Repositorynpublic interface EsAlSubjectEnterLogDao extends ElasticsearchRepository&lt;AlSubjectEnterLogDocument, String&gt; {n List&lt;AlSubjectEnterLogDocument&gt; findBySessionId(String sessionId)...
java 将查询结果集转为树形结构
在需要使用树形菜单的时候,z-tree是可以直接传数据父级id 对应子集pid自动生成树形结构,但z-tree这个框架毕竟年级较大了大家都知道年纪大的人都长得丑毕竟像我这么年轻才能天下第一帅,在使用很多树形控件时候需要的数据格式是固定的也就是子集需要在父级的一个集合属性里。(好了,可能是我们的前端太菜了不会写,非逼着我转结构)nn比如nnnn这样就需要我们在后台将数据处理成指定格式在转成json了...
递归和非递归两种方式实现二分法查找(java)
public class BinarySearch {n n public static void main(String[] args)n {n int[] arr = {1,3,5,7,9,11,13,15,17};n System.out.println(search(arr,13));n System.out.println(search1(arr,1,0,arr.length-1)
solrj 开发solr查询统计方法
java、solrj API开发solr查询统计方法solr常用的查询统计,通过solrj API实现, 有一般的条件过滤查询、分组查询、聚合查询等
二叉搜索树的相关操作(递归实现)
本文章主要介绍二叉搜索树的概念以及递归实现二叉搜索树的相关操作:按值插入、按值查找、按值删除。
二分法查找实现(递归与非递归)
实现二分法查询与非递归二分法查询,pclint检查no warning
Java递归查询菜单树所有节点-返回单层列表
数据库表nnnn查询结果展示nnnnJava递归方法nnn /**n *n * @param pid 父菜单IDn * @returnn */n public List&amp;lt;WsMenu&amp;gt; selectOneList(Integer pid) {n //fList是递归查询条件n List&amp;lt;Integer&amp;gt; fL...
递归搜索树形结构并返回搜索值
这里要处理的数据,是一组树型结构。如下nnnlet options=n[n {&quot;value&quot;:1,&quot;label&quot;:&quot;三甲&quot;,&quot;children&quot;:[n {&quot;value&quot;:68,&quot;label&quot;:&quot;上海三甲&quot;,&quot;children&quot;:[{&quot;value&quot;:681,&quot;label&quot;:&quot
content provider 的query使用查询系统数据,获取所有音乐的title
Content Provider 相当于数据的接口,通过它可以 把程序内部的数据向其他应用公开,这样的话,n其他应用程序就可以通过Context.getContentResolver方法获得ContentResolver对象,n并使用ContentResolver.insert,ContentResolver.delete,ContentResolver.update,ContentResol
递归在搜索算法中使用方法
最近阅读《算法的乐趣》这本书,书中的例子和作者的思考解题思路都让我很受益,给了我很多启发,于是想针对递归的使用方式,结合一些简单的例子,将自己的一些理解写出来供自己和大家在今后学习和工作中参考。rn从斐波那契数列说起rn递归是每本算法书中必讲解的内容,也是算法设计中的一类重要的设计思想。在搜索算法设计中,递归方式属于一种暴力搜素方法,即通过计算机的高速运算性能对所有的搜索分支都进行判断,取出符合要求的...
Elasticsearch Java API(七)--多级嵌套搜索
要在java中实现一个有三级父子关系的嵌套搜索,相关资料很少,发在stackoverflow上以后一个Switzerland的大神很快回复了我,google+stackoverflow很好使。对应的命令行query:{n "query": {n "has_child": {n "type": "instance",n "query": {
ajax获取所有数据,前台分页,搜索
背景: 因为项目特殊性,分页功能,后台没法像常规方法一样,分页从后台查找数据。所以前台会获取所有的数据,然后进行前台分页。关键字查询也是因为上述原因,用的是js自带的indexOf()方法。使用的插件和方法: n1. ajax n2. handlerbars模板引擎 n3. jquery插件开发过程代码结构如下:html代码:<!-- 数据展示区域-->n<table>n <tbody id=
Java利用递归实现查找树的节点的所有子节点和所有的终结节点
nn这是商品管理页面. n商品分类是:大类-->一级分类-->二级分类-->品牌-->产品. n有一个需求是,当我只选择了大类(手机/数码/配件)和一级分类(手机通讯),我希望商品展示页面能够展示手机通讯下面所有的产品. n也就是说需要寻找分类表里手机通讯下的品牌分类节点. n分类表是树形结构. nnn本来想用MySQL的函数或者存储过程实现.但是感觉操作数据比较麻烦,不好写,当然原因是我不太精通...
java 递归查询组织机构树
java 递归查询组织机构树
java搜索文件小程序(递归搜索文件)
起因:搜索电脑中一个视频文件,但不记得文件名了,windows搜索后缀名没搜到,所以想着打印出大于50M的所有文件public class SearchFile {    private static void search(File file){        if(file.isDirectory()){//如果是目录            File[] files = file.lis...
数据结构之搜索二叉树递归&非递归
每天都进步一点你会发现这个世界真的不一样
Java:File类、递归、查找文件
1、File类-概述nn1)java.io.File 这个类可以表示磁盘上的一个文件/目录,可以获取文件/目录的一些属性信息:nnn 文件/目录的名字n n 文件的大小n n 文件/目录的最后修改时间n n 文件/目录是否可读、是否可写nnnnn2、File类-File类的构造方法nnnpublic File(String pathname) :通过将给定的路径名字符串转换为抽象路径...
java递归查询数据
public String idsStr(Integer fid){ String ids=&quot;&quot;; String ids1=&quot;&quot;; String hql=&quot;from PlatformUser where isDelete=2 and fatherId=&quot;+fid; List&amp;lt;PlatformUser&amp;gt; users=baseDao.queryHQL(hql); if(users...
java 递归查询树形菜单结构(个人认为是最简单的)
/**n * 获取无限级的类别资源n */n @Overriden public List&lt;Object&gt; findTypeTree() throws BusinessException {n Map&lt;String,Object&gt; map = new HashMap&lt;&gt;();n map.put("EQ_parentId",0);n Map&lt;St...
java 递归查询某个父节点下的所有叶子节点
id name parent_idn1 qq null n2 qqw null n3 www nulln4 www 1 n5 wwwf 1 n6 dsf 1 n7 asdfasf 1 n8 dasfdasf 2 n9 df 2 n10 dfd ...
java递归查询数据库树
先查询第一层的数据,然后调用递归循环第一层的数据,查询父Id等于第一层的Id,执行完成后第一层一下的所有数据就全部查询出来了。。。nn场景描述 :每个应用(最顶层,树的根) 下面是多级菜单  每个菜单下是多个按钮(最下层,叶子结点)nn关联关系 id和pidnn根节点 pid为空,可根据type=APP查询出根节点nn查询出所有根节点,然后递归查出子孙节点nnMenu 的 List&amp;lt;Menu...
Java递归获取文件夹下全部文件
public static void getFiles(String path,ArrayList&amp;lt;File&amp;gt; list) throws Exception {n //目标集合fileListn File file = new File(path);n if (file.isDirectory()) {n File[] f...
类似百度的搜索提示框,数据库中查询关键字
网上的例子大都是静态的,已经写好的关键字,不能很好的满足用户的需求,所以需要从数据库查找到关键字,并显示出来。rnrn效果如下:rnrnrnrn首先,前台代码很简单,就是页面加载完执行jquery。rn rn function dropTip(){n $("input[id*=SearchBox]").bigAutocomplete({n width:155
Java Tree结构数据中查找匹配节点
private boolean contains(List&amp;lt;TreeVo&amp;gt; children, String value) {n for (TreeVo child : children) {n if (child.getName().equals(value) || (child.getChildren().size() &amp;gt; 0 &amp;amp;&amp;...
java递归与反向递归(逆向递归)查询树tree结构根据关键字过滤数据
递归查询树tree结构有两种做法:n第一种,递归查询数据库结构,第二种,一次性将数据库表中的所有数据查出来,然后再递归查出来的list集合,第一种做法适合数据量较少的tree结构,因为要一直查询数据库数据量大时速度回相对较慢,所以数据量大时建议使用第二种方法n反向递归(逆向递归)查询树tree结构根据关键字过滤数据,大家有么有遇到过这个问题:n这是一个树结构,默认查询全部nnn我想要根
zookeeper递归输出所有节点
在zk根目录下有a,zookeeper两个节点,在a下有孩子a1.nnn[zk: s201:2181(CONNECTED) 9] ls /n[a, zookeeper]n[zk: s201:2181(CONNECTED) 10] ls /an[a1]nnn递归代码如下:nnn @Testn public void TestZKAll() throws Exception {n ...
数据库联想工具(相当强悍 输入关键字 直接生成所有语句 方便实用)
数据库联想工具(相当强悍 输入关键字 直接生成所有语句 方便实用)
递归查询所有子级
1、既然要谈到sql,数据库表是必须的nnn2、数据结构nnnnnn3、获取某个节点的所有子节点nn    传统的写法(sql2000) 很麻烦,暂且就不写了nn    来看看CTE的写法nCREATE PROC sp_getTreeById(@TreeId int)nASnBEGIN n WITH cteTreen AS (
递归获得树形菜单树的两种方式,代码递归和mybatis自查询递归
草稿:1 代码递归1.1 代码优化:代码递归时根据父菜单id去数据库查询子目录,这点可以优化。首先把所有查出所有菜单项list&amp;lt;menu&amp;gt; lists;原来的根据父菜单id去数据库中查询子目录改为遍历lists根据父id查询子目录。1.2 场景优化:把递归菜单树结果放到缓存中,用户进入页面时直接展示。2 mybatis自查询...
java递归查询数据库数据
先查询第一层的数据,然后调用递归循环第一层的数据,查询父Id等于第一层的Id,执行完成后第一层一下的所有数据就全部查询出来了。。。public List&amp;lt;Information&amp;gt; getTreeList(Integer topId) { n String hql=&quot;from Information where isDelete=2 and id=&quot;+topId;n List&amp;l...
java使用递归和非递归实现二分查找
二分查找
递归查询所有下级部门树形结构反向递归获取所有ID集合
mysql递归搜索再之前得原创文档里已经写明了,这个网上比较多。直接进入正题:原创手写反递归 package com.kb.nxccims.common.util;import java.util.ArrayList;import java.util.List;import com.kb.nxccims.expandmodel.UnitVO;/** * @author 叶成浪 * @time 20...
java树形结构递归查询
/** * 根据等级查询类目树 * * @param level * @return */ @Override public List<CategoryTreeDTO> queryCategoryTree(Integer level) { //查询当前级别下类目 List<CategoryDO> list = categoryDAO.list(level); //组装好的类目树,返回前端 List<CategoryTreeDTO> categoryTree = new ArrayList<>(); //所有类目 List<CategoryTreeDTO> allDTOList = new ArrayList<>(); if (CollectionUtils.isEmpty(list)) { return categoryTree; } for (CategoryDO categoryDO : list) { allDTOList.add(new CategoryTreeDTO().convertDOToDTO(categoryDO)); } //当前等级类目 categoryTree = allDTOList.stream().filter(dto -> level.equals(dto.getLevel())).collect(Collectors.toList()); for (CategoryTreeDTO categoryTreeDTO : categoryTree) { //组装类目为树结构 assembleTree(categoryTreeDTO, allDTOList,Constants.CATEGORY_MAX_LEVEL - level); } return categoryTree; } /** * 组装树 * * @param categoryTreeDTO * @param allList * @param remainRecursionCount 剩余递归次数 * @return */ public CategoryTreeDTO assembleTree(CategoryTreeDTO categoryTreeDTO, List<CategoryTreeDTO> allList, int remainRecursionCount) { remainRecursionCount--; //最大递归次数不超过Constants.CATEGORY_MAX_LEVEL-level次,防止坏数据死循环 if(remainRecursionCount < 0){ return categoryTreeDTO; } String categoryCode = categoryTreeDTO.getCategoryCode(); Integer level = categoryTreeDTO.getLevel(); //到达最后等级树返回 if (Constants.CATEGORY_MAX_LEVEL == level) { return categoryTreeDTO; } //子类目 List<CategoryTreeDTO> child = allList.stream().filter(a -> categoryCode.equals(a.getParentCode())).collect(Collectors.toList()); if (null == child) { return categoryTreeDTO; } categoryTreeDTO.setChildren(child); //组装子类目 for (CategoryTreeDTO dto : child) { assembleTree(dto, allList,remainRecursionCount); } return categoryTreeDTO; }
数据查询,简单查询及高级查询
查询所有列rn1.select * from inforn查特定列rn2.select code,name from inforn查出列后加别名,再查姓名rn3.select code as '代号',name as '姓名' from inforn条件查询,单条件查询rn4.select * from info where code='p001'rn两个条件,并且的关系rn5.select *
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java相关 深度学习 java 深度学习相关