java递归查询父节点_java递归例子

java递归查询父节点_java递归例子一、需求项目里要让用户能够设置所选择教材的章课节,以针对章课节提供相应的题目供用户做题。设计:用户设置了教材后,首次登录,进行章节设置时。默认为用户选择第一章、第一课、第一节。思路:用户访问页面,章一栏显示所有章,课一栏显示第一章下所有课程,节一栏显示第一章、第一课下的所有节。然后获取用户当前选择的章课节信息。如果当前用户没有设置过该教材的章课节,就为其设置默认的第一章、第一课、第一节。数据库设计…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、需求

项目里要让用户能够设置所选择教材的章课节,以针对章课节提供相应的题目供用户做题。

设计:用户设置了教材后,首次登录,进行章节设置时。默认为用户选择第一章、第一课、第一节。

思路:用户访问页面,章一栏显示所有章,课一栏显示第一章下所有课程,节一栏显示第一章、第一课下的所有节。然后获取用户当前选择的章课节信息。如果当前用户没有设置过该教材的章课节,就为其设置默认的第一章、第一课、第一节。

数据库设计:此处将章课节所有信息存放到一张表中,可递归查询。最上一级章的parentid是教材的id。故给一个教材id便可以查找到其下所有的章课节信息。

二、解决

已设置的我们这里不讨论,只需要到库中查询对应的章课节即可。

那么对于默认第一章第一课第一节,我们这里使用一个递归函数将查询的结果存放到一个list中

/*** 根据给定的id,查询其下的第一课、第一节(不只适用于章课节三级,如果下面还有级别的目录,也可查

*

* 询出)

*

*@paraml    是教材id

*@paramlist

*@return

*/

public void getSubChapter(long l, Listlist) {

BookChapter c= null;

String sql= “SELECT D.chapter_id chapter_id, D .chapter_name chapter_name, D . LEVELS LEVELS FROM “

+ “( SELECT * FROM mic_study_book_chapter c WHERE c.parent_chapter_id =? ORDER BY c.code ) D WHERE ROWNUM = 1 “;

Object[] params={ l };try{

logger.info(sql.toString().replaceAll(“\\?”, “{}”), params);

List li = this.getJdbcTemplate().query(sql, params,newBookChapterRowMapper());if(li.size() != 0){

c= li.get(0);if (c != null) {

list.add(c);

getSubChapter(c.getId(), list);//递归查询

}

}

}catch(Exception e) {

logger.error(e.getMessage(),e);

}

}

递归查询的特点:函数方法自己掉用自己,通过某个条件判断跳出最后一个被调用的递归方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192216.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 值得收藏!15个 Pythonic 的代码示例

    值得收藏!15个 Pythonic 的代码示例Python 由于语言的简洁性 让我们以人类思考的方式来写代码 新手更容易上手 老鸟更爱不释手 要写出 Pythonic 优雅的 地道的 整洁的 代码 还要平时多观察那些大牛代码 Github 上有很多非常优秀的源代码值得阅读 比如 requests flask tornado 这里小明收集了一些常见的 Pythonic 写法 帮助你养成写优秀代码的习惯 01 变量交换 Badtmp aa bb tmpPythonica b b a02 列表推导 Badmy list

    2025年6月7日
    0
  • 一、智能车舵机控制

    一、智能车舵机控制前言:本文章主要是近期有关舵机知识的总结,将分别从舵机的控制原理,控制流程和代码实现流程几个方面作简要介绍,由于时间紧急,难免有疏漏错误之处,欢迎留言指正,QQ:2046890259一、多级的控制原理:我们本次智能车使用的舵机是通过PWM进行控制。而PWM几个重要的参数就是最大值,最小值和占空比。其中占空比决定了舵机的旋转角度,如下图所示:不同的占空比控制不同的角度。而我们的目的就是通过…

    2022年6月20日
    37
  • 吞食鱼1外星鱼_吞食鱼手机激活成功教程版

    吞食鱼1外星鱼_吞食鱼手机激活成功教程版首先,我们准备工具CE还有就是DX窗口化工具。图1:现给窗口化了,才能调试游戏嘛!先打开dx.点全局钩子。然后手动启用游戏。图2:开始了。打开CE搜生命次数!Fuck!没找到?什么原因?图3莫非加壳了?拿peid一看没壳啊!图4换类型搜一下。图5还不行。各种类型搜:都不行。忽然看到了

    2022年8月24日
    5
  • MIME协议详解「建议收藏」

    MIME协议详解「建议收藏」                  MIME结构一、   RFC822协议RFC822文档定义了邮件内容的主体结构和各种邮件头字段的详细细节,但是,它没有定义邮件体的格式,RFC822文档定义的邮件体部分通常都只能用于表述一段普通的文本,而无法表达出图片、声音等二进制数据。另外,SMTP服务器在接收邮件内容时,当接收到只有一个“.”字符的单独行时,就会认为邮…

    2022年4月20日
    59
  • debug灯在哪_shutterbug

    debug灯在哪_shutterbug

    2022年8月20日
    4
  • xgboost分类算法_python分类统计

    xgboost分类算法_python分类统计今天我们一起来学习一下如何用Python来实现XGBoost分类,这个是一个监督学习的过程,首先我们需要导入两个Python库:importxgboostasxgbfromsklearn.metricsimportaccuracy_score这里的accuracy_score是用来计算分类的正确率的。我们这个分类是通过蘑菇的若干属性来判断蘑菇是否有毒的分类,我们来看看数据…

    2022年9月1日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号