⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 btreedao.java

📁 使用spring ,hibernate 框架的稽查管理系统
💻 JAVA
字号:
package com.je.ims.dao;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.je.ims.hibernate.*;
public class BTreeDAO extends HibernateDaoSupport {

	//	删除所有记录,做实验用
	public void Delete(){
		getHibernateTemplate().deleteAll(getHibernateTemplate().loadAll(Btree.class));
		getHibernateTemplate().deleteAll(getHibernateTemplate().loadAll(ShowBtree.class));
	}
	public BTreeDAO() {
		super();
	}
	
	//	新增
	public void AddBtree(final Btree btree)
	{
		
		getHibernateTemplate().execute(new HibernateCallback(){
			public Object doInHibernate(Session session) throws HibernateException { 
				session.save(btree);
				if(btree.getParentId().equals("root"))
				{
					ShowBtree sbtree = new ShowBtree();
					BtreeId bid = btree.getId();
	 				ShowBtreeId sbid = new ShowBtreeId(bid.getNodeId(),bid.getYear());
					sbtree.setId(sbid);
					sbtree.setShowId(new Long(0));
					session.save(sbtree);
				}
					return null;      
			}
		});
	}
	
	
	//	更新
	public void UpdateBtree(Btree btree)
	{
		getHibernateTemplate().update(btree);
	}
	
	//	 根据节点id,year寻找它同层所有子节点 
	public List GetNodeByParentSameLvl(String parentId,Long year){
		if (!parentId.equals("root")){
			Btree btree = this.GetByNodeId(parentId,year);
			Long lvl = btree.getLvl();
			List l = getHibernateTemplate().find("from Btree where parentId='"+parentId+"' and id.year="+year+" and lvl="+lvl);
			return l;
		}
		return null;
	}
	
	//	 根据节点id,year寻找它下一层所有子节点 
	public List GetNodeByParentNextLvl(String parentId,Long year){
		Long lvl;
		if(!parentId.equals("root"))
		{
			Btree btree = this.GetByNodeId(parentId,year);
			lvl = btree.getLvl();
			lvl = new Long(lvl.longValue()+1);
		}
		else
			lvl = new Long(1);
		List l = getHibernateTemplate().find("from Btree where parentId='"+parentId+"' and id.year="+year+" and lvl="+lvl);
		return l;
		
	}
	
	// 根据node,year寻找下一层子节点
	public List GetNodeByParent(String parentId,Long year){
		
		List l;
		if (!parentId.equals("root")){
			l = getHibernateTemplate().find("from Btree where parentId='"+parentId+"' and id.year="+year);
			return l;
		}
		else{
			String condition = "where btree.id.nodeId = sbtree.id.nodeId and btree.id.year = sbtree.id.year and btree.parentId='"+parentId+"' and btree.id.year="+year+" order by sbtree.showId";
			l = getHibernateTemplate().find("select new Btree(btree.id,btree.nodeName,btree.lvl,btree.parentId,btree.privilegeId) from Btree btree,ShowBtree sbtree "+condition);
			return l;
		}
	}
	
	//  根据父节点Id来选出所有子节点信息
	public List GetAllByParent(String parentId,Long year){
	
		Btree btree = new Btree();
		List l = this.GetNodeByParent(parentId,year);
		int n = l.size();
		List ltemp;
		if (l.size()>0){
			for (int i=0;i<n;i++){
				btree = (Btree)l.get(i);
				ltemp = this.GetAllByParent(btree.getId().getNodeId(),btree.getId().getYear());
				l.addAll(ltemp);
			}
		}
		return l;
	}
	
	//	 根据父节点Id来选出所有子节点信息
	public List GetAllByParent(String[] parentId,Long year){
	
		List l = new ArrayList();
		List ltemp;
		for (int i=0;i<parentId.length;i++){
			l.add(this.GetByNodeId(parentId[i],year));
			ltemp = this.GetAllByParent(parentId[i],year);
			l.addAll(ltemp);
			
		}
		return l;
		
	}
	
	//	根据id,year返回Btree对象
	public Btree GetByNodeId(String id,Long year){
		
		List l = getHibernateTemplate().find("from Btree where id.nodeId='"+id+"' and id.year="+year);
		if(l.size()!=1)
			return null;
		return (Btree)l.get(0);
	}
	
	//	删除节点,同时要删除其所有子节点
	public void DeleteNode(final String id,final Long year){
		final List l = GetNodeByParent(id,year);
		getHibernateTemplate().execute(new HibernateCallback(){
			public Object doInHibernate(Session session) throws HibernateException { 
				for (int i =0;i<l.size();i++){
					DeleteNode(((Btree)l.get(i)).getId().getNodeId(),year);
				}
				
				if (GetByNodeId(id,year).getParentId().equals("root")){
					session.delete(GetShowBtree(id,year));
				}
				session.delete(GetByNodeId(id,year));
					return null;      
			}
		}); 
	}
	
	//	 判断一个节点时候有子节点,如果有返回true,否则返回false
	public boolean IsNode(Btree btree){
		List l = getHibernateTemplate().find("from Btree where parentId='"+btree.getId().getNodeId()+"' and id.year="+btree.getId().getYear());
		if (l.size()>0)
		return true;
		return false;
	}
	//  返回子节点中层别最大值
	public int GetTheLargeLvl(String parentId,Long year){
		List l = this.GetAllByParent(parentId,year);
		int lvl = 0;
		Btree btree;
		for (int i=0;i<l.size();i++){
			btree = (Btree)l.get(i);
			if (btree.getLvl().intValue()>lvl){
				lvl = btree.getLvl().intValue();
			}
		}
		return lvl;
	}
	
	//  设置字节点的层数
	public void SetChildLvl(String parentId,Long year,int sublvl){
		List l = this.GetAllByParent(parentId,year);
		//int lvl = 0;
		Long lvl;
		Btree btree;
		for (int i=0;i<l.size();i++){
			btree = (Btree)l.get(i);
			lvl = new Long(btree.getLvl().intValue()+sublvl);
			btree.setLvl(lvl);
			this.getHibernateTemplate().update(btree);
		}
	}
	
	//  设置字节点的privilegeId
	public void SetChildPrivilegeId(String parentId,Long year,String pid){
		List l = this.GetAllByParent(parentId,year);
		Btree btree;
		for (int i=0;i<l.size();i++){
			btree = (Btree)l.get(i);
			btree.setPrivilegeId(pid);
			this.getHibernateTemplate().update(btree);
		}
	}
	
	
	public List GetAllParent(Long year,String nodeId){
		List l = getHibernateTemplate().find("from Btree where lvl < 4 and id.year="+year);
		for (int i=0;i<l.size();i++){
			if (((Btree)l.get(i)).getId().getNodeId().equals(nodeId)){
				l.remove(i);
			}
		}
		return l;
	}
	//////////////////about showbtree/////////////////////////
	
	// 获取showbtree对象
	public ShowBtree GetShowBtree(String id,Long year){
		
		List l = getHibernateTemplate().find("from ShowBtree where id.nodeId='"+id+"' and id.year="+year);
		if(l.size()!=1)
			return null;
		return (ShowBtree)l.get(0);
	}
	
	// 更新showbtree
	public void UpdateShowBtree(ShowBtree sbtree){
		getHibernateTemplate().update(sbtree);
	}
	
	// 得到所有showbtree
	public List GetAllShowBtree(int year){
		List l = getHibernateTemplate().find("from ShowBtree where id.year =" +year);
		return l;
	}
	///////////////////////////////////////////////////////////

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -