java实现遍历树形菜单方法——Dao层

Dao层接口:

 /**  
* @Title: IVoteTreeDao.java
* @Package org.dao
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-5-6 下午10:38:47
* @version V1.0  
*/
package org.dao;import java.util.List;import org.entity.VoteTree;/**   *    * 项目名称:testTree   * 类名称:IVoteTreeDao   * 类描述:   * 创建人:Mu Xiongxiong  * 创建时间:2017-5-6 下午10:38:47   * 修改人:Mu Xiongxiong   * 修改时间:2017-5-6 下午10:38:47   * 修改备注:   * @version    *    */
public interface IVoteTreeDao {//查询最小的levelLong minId();//根据最小的查询所有一级菜单List<VoteTree> getFirstLevel(Long minLevel);//根据pid查询所有相对应的子集List<VoteTree> getNextSubSet(VoteTree tvote);//递归查询List<VoteTree> getDeeptLevel(VoteTree tvote);}

HibernateBaseDao实现:

 /**  
* @Title: BaseHibernateDao.java
* @Package org.dao
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-5-6 下午1:50:18
* @version V1.0  
*/
package org.dao;import org.hibernate.Session;
import org.util.HibernateUtil;/**   *    * 项目名称:votedemo   * 类名称:BaseHibernateDao   * 类描述:   hibernate的工具类BaseDao* 创建人:Mu Xiongxiong  * 创建时间:2017-5-6 下午1:50:18   * 修改人:Mu Xiongxiong   * 修改时间:2017-5-6 下午1:50:18   * 修改备注:   * @version    *    */
public class BaseHibernateDao {/*** * @Title: getSession* @Description: 该方法的主要作用:打开session * @param  @return 设定文件  * @return  返回类型:Session   * @throws*/public Session getSession(){return HibernateUtil.getSession();}/*** * @Title: closeSession* @Description: 该方法的主要作用:关闭session * @param   设定文件  * @return  返回类型:void   * @throws*/public void closeSession (){HibernateUtil.closeSession();}}

Dao层实现类:
 /**  
* @Title: IVoteTreeDaoImpl.java
* @Package org.dao.impl
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-5-6 下午10:40:25
* @version V1.0  
*/
package org.dao.impl;import java.util.ArrayList;
import java.util.List;import javax.persistence.criteria.From;import org.dao.BaseHibernateDao;
import org.dao.IVoteTreeDao;
import org.entity.VoteTree;/**   *    * 项目名称:testTree   * 类名称:IVoteTreeDaoImpl   * 类描述:   * 创建人:Mu Xiongxiong  * 创建时间:2017-5-6 下午10:40:25   * 修改人:Mu Xiongxiong   * 修改时间:2017-5-6 下午10:40:25   * 修改备注:   * @version    *    */
public class IVoteTreeDaoImpl extends BaseHibernateDao implements IVoteTreeDao {////查询最小的数@Overridepublic Long minId() {String hql = "select min(levels) from VoteTree";Long minCount = (Long) getSession().createQuery(hql).uniqueResult(); System.out.println("最小的数是:"+minCount);return minCount;}//查询一级菜单@Overridepublic List<VoteTree> getFirstLevel(Long minLevel) {String hql="from VoteTree where levels=?";List<VoteTree> listFirstLevel = getSession().createQuery(hql).setParameter(0, minLevel).list();return listFirstLevel;}//根据一级id查询所有的子集@Overridepublic List<VoteTree> getNextSubSet(VoteTree tvote) {String hql = "from VoteTree where pid = ?";List<VoteTree> tNextLevel = getSession().createQuery(hql).setParameter(0, tvote.getId()).list();//遍历这个二级目录的集合for (VoteTree voteTree : tNextLevel) {List<VoteTree> ts = getDeeptLevel(voteTree);//将下面的子集都依次递归进来voteTree.setChildren(ts);}return tNextLevel;}//递归查询@Override public List<VoteTree> getDeeptLevel(VoteTree tvote) {String hql="from VoteTree where pid = ?";List<VoteTree> tsLevel = getSession().createQuery(hql).setParameter(0, tvote.getId()).list();if(tsLevel.size()>0){for (int i = 0; i <tsLevel.size(); i++) {getDeeptLevel(tsLevel.get(i));}}return tsLevel;}}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件损坏 无法删除 怎么使用chkdsk磁盘修复工具

有时候我们会遇到文件无法删除的问题&#xff0c;该如何解决。对于专业人士可能比较简单。对于小白&#xff0c;就够折腾人的了。下面分享下我是怎么做的。 很简单很实用。 现象&#xff1a;此时哪里有损坏&#xff0c;一般会在删除文件时&#xff0c;莫名的提示有文件无法删除…

计算机网络产生的历史背景,网络技术背景及sdn概述.pdf

网络技术背景及sdn概述软件定义网络黄韬北京邮电大学北京邮电大学第1章&#xff1a;背景与概述个人简介个人简介• 黄韬– 信息与通信工程学院– 博士&#xff0c;副教授– 科研方向科研方向&#xff1a;&#xff1a;未来网络未来网络– 教学课程&#xff1a;计算机网络、软件定…

35c3 krautflare

参考这篇文章可以彻底了解本题的漏洞所在 https://xz.aliyun.com/t/6527 由于Math.expm1经过patch以后的返回值不可能是-0&#xff0c;但是patch的地方是在typer优化中&#xff0c;所以实际上如果没有优化的话是可以返回-0的&#xff0c;这就意味着如果我们先不停地Math.expm1…

Java集合框架综述

转载自 Java集合框架综述 集合框架&#xff08;collections framework&#xff09; 首先要明确&#xff0c;集合代表了一组对象&#xff08;和数组一样&#xff0c;但数组长度不能变&#xff0c;而集合能&#xff09;。Java中的集合框架定义了一套规范&#xff0c;用来表示、…

vue项目没有启动成功的原因之一

删除mould。。。本地从新安装

RabbitMQ 高可用集群搭建及电商平台使用经验总结

面向EDA&#xff08;事件驱动架构&#xff09;的方式来设计你的消息AMQP routing key的设计RabbitMQ cluster搭建Mirror queue policy设置两个不错的RabbitMQ plugin 大型应用插件(Sharding、Rederation)Queue镜像失败手动同步各集群配置同步方式&#xff08;RabbitMQ export\i…

java实现遍历树形菜单方法——service层

Service接口&#xff1a; /** * Title: IVoteTreeService.java * Package org.Service * Description: TODO该方法的主要作用&#xff1a; * author A18ccms A18ccms_gmail_com * date 2017-5-6 下午10:42:10 * version V1.0 */ package org.Service;import java.util.Li…

谷歌浏览器如何阻止弹窗广告?右下角弹窗一个接一个的弹出 每隔几分钟又来一波 怎么屏蔽?

谷歌浏览器如何阻止弹窗广告&#xff1f;右下角弹窗一个接一个的弹出 每隔几分钟又来一波 怎么屏蔽&#xff1f; 作者&#xff1a;知乎用户 链接&#xff1a;https://www.zhihu.com/question/319190736/answer/645314963 来源&#xff1a;知乎 著作权归作者所有。商业转载请联…

如何线程安全的使用HashMap

转载自 如何线程安全的使用HashMap 在周二面试时&#xff0c;一面的面试官有问到 HashMap 是否是线程安全的&#xff0c;如何在线程安全的前提下使用 HashMap,其实也就是 HashMap&#xff0c;Hashtable&#xff0c;ConcurrentHashMap 和 synchronized Map 的原理和区别。当时有…

脚本可以放在html外,关于把script脚本放在html结束标签外的运行结果???

杨__羊羊在哪里放置 JavaScript 代码&#xff1f;通常情况下&#xff0c;JavaScript 代码是和 HTML 代码一起使用的&#xff0c;可以将 JavaScript 代码放置在 HTML 文档的任何地方。但放置的地方&#xff0c;会对 JavaScript 代码的正常执行会有一定影响&#xff0c;具体如下所…

后端解决跨域问题---SpringBoot

解决跨域问题 在后端解决跨域问题&#xff1a; 新建配置类 config/ CrosConfig.java /*** 解决跨域问题*/ Configuration public class CrosConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/*…

java实现遍历树形菜单方法——HibernateUtil实现

/** * Title: HibernateUtil.java * Package org.web * Description: TODO该方法的主要作用&#xff1a; * author A18ccms A18ccms_gmail_com * date 2017-5-6 下午1:41:30 * version V1.0 */ package org.util;import org.hibernate.Session; import org.hibernate.cfg…

用.net core 写后端—— c++外的另一种选择?

一、.net core简介 &#xff08;1&#xff09;.net是什么 .net实际是遵守同一个标准&#xff08;ECMA&#xff09;的多种不同实现&#xff0c;如.net Framework、Mono、和较新的.netcore。C#是.net支持的其中一种语言&#xff0c;理论上任何遵循公共语言规范&#xff08;CLS&am…

16-就业课(2.1)-应用容器-Docker

https://www.jianshu.com/writer#/notebooks/46975630/notes/74245796 01-今日内容.mp4 02-初始docker-docker概述.mp4 03-初始docker-docker安装.mp4 04-初始docker-docker架构.mp4 05-初始docker-配置镜像加速器.mp4 https://www.jianshu.com/writer#/notebooks/4697563…

如何使ArrayList 线程安全

转载自 如何使ArrayList 线程安全 ArrayList是线程不安全的&#xff0c;轻量级的。如何使ArrayList线程安全&#xff1f; 1、继承Arraylist&#xff0c;然后重写或按需求编写自己的方法&#xff0c;这些方法要写成synchronized&#xff0c;在这些synchronized的方法中调用Arr…

百度地图描绘轨迹html,百度地图API 绘制轨迹历史

DOCTYPE html>2 3 4 5 6 7 body, html{width:100%;height:100%;overflow:hidden;margin:0;font-family:"微软雅黑";}8 #allmap{width:100%;height:100%;overflow:hidden;margin:0;font-family:"微软雅黑";}9 style>10 script>11 script>1213 车…

java实现遍历树形菜单方法——TreeAction实现

/** * Title: TreeAction.java * Package org.web * Description: TODO该方法的主要作用&#xff1a; * author A18ccms A18ccms_gmail_com * date 2017-5-6 下午11:27:32 * version V1.0 */ package org.web;import net.sf.json.JSONArray; import net.sf.json.JSONObje…

传统请求风格 VS RestFul 风格

RestFul 风格 概念 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议&#xff0c;只是一种风格。基于这个风格设计的软件可以更简洁&#xff0c;更有层次&#xff0c;更易于实现缓存等机制。 功能 资源&#xff1a;互联网所有的事物都可以被抽象为资源 资源操…

《微软开源跨平台移动开发实践》团购通知

【新书推荐】《微软开源跨平台移动开发实践》带你走近微软开源开源跨平台技术 大家的响应非常积极&#xff0c;接近400位同学想团购。 这两天通过作者李争的努力&#xff0c;为大家争取到了非常实惠的价格&#xff0c;投票结果看不到具体是谁参与了投票&#xff0c;请参与投票的…

java实现遍历树形菜单方法——OpenSessionView实现

/** * Title: OpenSessionView.java * Package org.util * Description: TODO该方法的主要作用&#xff1a; * author A18ccms A18ccms_gmail_com * date 2017-5-6 下午1:48:25 * version V1.0 */ package org.web;import java.io.IOException;import javax.servlet.Filt…