java实现遍历树形菜单方法——Dao层
生活随笔
收集整理的這篇文章主要介紹了
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;}}
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的java实现遍历树形菜单方法——Dao层的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java实现遍历树形菜单方法——映射文件
- 下一篇: 怎么把电脑上的自带看图工具设置为默认的?