c88menudao.java
来自「使用spring ,hibernate 框架的稽查管理系统」· Java 代码 · 共 177 行
JAVA
177 行
package com.je.ims.dao;
import java.util.LinkedList;
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.Menu;
import com.je.ims.hibernate.RoleTypeMenu;
public class C88MenuDAO extends HibernateDaoSupport{
public C88MenuDAO(){
super();
}
public List GetAll(){
String hql="select menu from Menu menu order by menu.baseItem , menu.showId";
List list=this.getHibernateTemplate().find(hql);
return list;
}
public List GetPart(){
String hql="select menu from Menu menu where menu.isDirectory = "+0+"order by menu.baseItem , menu.showId";
List list=this.getHibernateTemplate().find(hql);
return list;
}
public List GetPart(Long roleTypeId){
String hql1="select menu from Menu menu where menu.isDirectory = "+0+"order by menu.baseItem , menu.showId";
String hql2="from RoleTypeMenu where id.roleTypeId = "+roleTypeId;
List L1=this.getHibernateTemplate().find(hql1);
List L2=this.getHibernateTemplate().find(hql2);
for(int i=0;i<L1.size();i++){
Menu menu=(Menu) L1.get(i);
for(int j=0;j<L2.size();j++){
RoleTypeMenu roleTypeMenu = (RoleTypeMenu) L2.get(j);
if(menu.getMenuId().equals(roleTypeMenu.getId().getMenuId())){
L1.remove(i);
break;
}
}
}
return L1;
}
//通過menuId返回Menu對象
public Menu GetById(String menuId){
List L1=this.getHibernateTemplate().find("from Menu where menuId =?",new Object[] {menuId});
if (L1.size()>0)
return (Menu)L1.get(0);
else return null;
}
//通過menuName返回Menu對象
public Menu GetByName(String menuName){
List L1=this.getHibernateTemplate().find("from Menu where menuName =?",new Object[] {menuName});
if (L1.size()>0)
return (Menu)L1.get(0);
else return null;
}
public String GetNameByID(String menuId){
List L1=getHibernateTemplate().find("select menuName from Menu where menuId=?",menuId);
if (L1.size()>0)
return (String)L1.get(0);
else return null;
}
//当用户新增menu时,把父菜单的is_dir改为1,父菜单的programq改为null
public void insert(final Menu menu){
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
session.save(menu);
if(!menu.getBaseItem().equals("root")){
final Menu parent=GetByName(menu.getBaseItem().trim());
parent.setIsDirectory(new Long(1));
parent.setProgram("null");
session.update(parent);
}
return null;
} });
}
//刪除 Menu以及相關表信息,包括RoleTypeMenu,刪除時判斷該menu的父菜單是否還有其他的
//子菜單,如果沒有,則IS_DIR=0;
public void delete(final String menuId) {
final Menu menu=GetById(menuId);
final String baseItem=menu.getBaseItem().trim();
final List L1=this.getHibernateTemplate().find("from RoleTypeMenu where id.menuId =?",new Object[] {menuId});
final List L2=this.getHibernateTemplate().find("from Menu where baseItem =?",new Object[] {baseItem});
Menu parent=null;
if(L2.size()==1){
parent=GetById(baseItem);
parent.setIsDirectory(new Long(0));
}
final Menu par=parent;
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
for(int i=0;i<L1.size();i++)
session.delete(L1.get(i));
if (par!=null)
session.update(par);
session.delete(menu);
return null;
} });
}
/*判断父菜单的Is_dir是否需要更新
*更新新的父菜单的Is_dir
*更新菜单的lvl
*/
public void update(Menu menu,String parentName) {
if(menu.getBaseItem().equals(parentName))
getHibernateTemplate().update(menu);
else {
Menu old_parent=GetByName(parentName);
List L1=this.getHibernateTemplate().find("from Menu where baseItem =?",new Object[] {parentName});
if(L1.size()==1)
old_parent.setIsDirectory(new Long(0));
Menu new_parent=GetByName(menu.getBaseItem());
new_parent.setIsDirectory(new Long(1));
new_parent.setProgram("null");
menu.setLvl(new Long(new_parent.getLvl().intValue()+1));
final Menu menu1=menu;
final Menu old_par=old_parent;
final Menu new_par=new_parent;
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
if(old_par!=null)
session.update(old_par);
if(new_par!=null)
session.update(new_par);
if(menu1!=null)
session.update(menu1);
return null;
} });
}
}
public void update(Menu menu) {
getHibernateTemplate().update(menu);
}
public List GetAllEscape(String menuId) {
List L1=GetAll();
for(int i=0;i<L1.size();i++){
if(((Menu)L1.get(i)).getMenuId().equals(menuId))
L1.remove(i);
}
return L1;
}
// 如果存在,返回true,不存在,返回false
public boolean checkId(String menuId) {
List L1=this.getHibernateTemplate().find("from Menu where menuId =?",new Object[] {menuId});
if(L1.size()>0)
return true;
else
return false;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?