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

📄 menudao.java

📁 一个jsp的oa系统,里面有很多亮点学习!
💻 JAVA
字号:
package com.oa.lp.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.List;

import com.oa.lp.model.Menu;
import com.oa.lp.util.DTOPopulator;
public class MenuDAO {

	private Connection conn;
	public Connection getConn() {
		return conn;
	}

	public void setConn(Connection conn) {
		this.conn = conn;
	}
	
	/**
	 * 新增菜单
	 *
	 */
	public void addMenu(Menu menu) throws Exception{
		String sql = "insert into SYS_MENU(PARENT_MENU_ID,MENU_NAME,MENU_LINK," +
				"MENU_ORDER,MENU_STATE)values(?,?,?,?,?)";
		
		int menuOrder = this.getMenuOrderByParentId(menu.getParentMenuId());
		PreparedStatement pstmt = conn.prepareStatement(sql);
		if(menu.getParentMenuId()==0){
			//如果上级菜单编号为0,设上级菜单为null
			pstmt.setNull(1,Types.INTEGER);
		}else{
			pstmt.setInt(1,menu.getParentMenuId());
		}
		pstmt.setString(2,menu.getMenuName());
		pstmt.setString(3,menu.getMenuLink());
		pstmt.setInt(4,menuOrder);
		pstmt.setInt(5,menu.getMenuState());
		pstmt.executeUpdate();
		pstmt.close();
	}
	/**
	 * 通过菜单ID查找菜单
	 */
	public Menu getById(int menuId) throws Exception{
		Menu menu =null;
		String sql = "select * from SYS_MENU where MENU_ID=?";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1,menuId);
		ResultSet rs = pstmt.executeQuery();
		//将结果集中的每一行记录封装成一个对象,再放进集合返回
		List list = DTOPopulator.populate(rs, Menu.class);
		//取集合中的第一个元素返回
		if(list.size()>0){
			menu=(Menu)list.get(0);
		}
		pstmt.close();
		return menu;
	}
	/**
	 * 更新菜单
	 *
	 */
	public void updateMenu(Menu menu) throws SQLException{
		String sql = "update SYS_MENU set PARENT_MENU_ID=?,MENU_NAME=?,MENU_LINK=?," +
				"MENU_ORDER=?,MENU_STATE=? where MENU_ID=?";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		if(menu.getParentMenuId()==0){
			//如果上级菜单编号为0,设上级菜单为null
			pstmt.setNull(1,Types.INTEGER);
		}else{
			pstmt.setInt(1,menu.getParentMenuId());
		}
		pstmt.setString(2,menu.getMenuName());
		pstmt.setString(3,menu.getMenuLink());
		pstmt.setInt(4,menu.getMenuOrder());
		pstmt.setInt(5,menu.getMenuState());
		pstmt.setInt(6,menu.getMenuId());
		pstmt.executeUpdate();
		pstmt.close();
	}

	/**
	 * 菜单列表
	 */
	public List listAllMenu() throws Exception{
		List list = null; 
		String sql = "select * from SYS_MENU order by PARENT_MENU_ID,MENU_ORDER";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs = pstmt.executeQuery();
		//将结果集中的每一行记录封装成一个对象,再放进集合返回
		list = DTOPopulator.populate(rs, Menu.class);
		pstmt.close();
		return list;
	}
	/**
	 * 通过上级菜单编号,决定菜单顺序
	 *
	 */
	public int getMenuOrderByParentId(int parentMenuId) throws Exception{
		int orderNum = 0;
		String sql = "";
		if(parentMenuId==0){
			sql = "select max(MENU_ORDER)+1 from  SYS_MENU  where PARENT_MENU_ID is null";
		}else{
			sql = "select max(MENU_ORDER)+1 from  SYS_MENU  where PARENT_MENU_ID ="+parentMenuId;
		}
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		
		ResultSet rs = pstmt.executeQuery();
		if(rs.next()){
			orderNum = rs.getInt(1);
		}
		pstmt.close();
		return orderNum;
	}
	/**
	 * 通过上级菜单编号,获得下级菜单集合
	 */
	public List getMenusByParentId(int parentMenuId) throws Exception{
		String sql = ""; 
		List list = null; 
		if(parentMenuId==0){
			sql = "select *  from  SYS_MENU  where PARENT_MENU_ID is null";
		}else{
			sql = "select * from  SYS_MENU  where PARENT_MENU_ID ="+parentMenuId;
		}
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs = pstmt.executeQuery();
		//将结果集中的每一行记录封装成一个对象,再放进集合返回
		list = DTOPopulator.populate(rs, Menu.class);
		pstmt.close();
		return list;
		
	}
	/**
	 * 更新菜单状态
	 */
	public void updateMenuState(int menuId,int menuState) throws SQLException{
		String sql = "update SYS_MENU set MENU_STATE=? where MENU_ID=?";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1,menuState);
		pstmt.setInt(2,menuId); 
		pstmt.executeUpdate(); 
		pstmt.close();
	}
	
	/**
	 * 判断菜单是否是最顶层
	 * @throws SQLException 
	 */
	public boolean checkMenuOrderTop(int parentMenuId,int menuOrder) throws SQLException{
		boolean flage = false;
		String sql = "";
		if(parentMenuId==0){
			sql = "select min(MENU_ORDER)  from  SYS_MENU  where PARENT_MENU_ID is null ";
		}else{
			sql = "select min(MENU_ORDER) from  SYS_MENU  where PARENT_MENU_ID ="+parentMenuId;
		}
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs = pstmt.executeQuery();
		if(rs.next()){
			int orderNum = rs.getInt(1);
			if(orderNum==menuOrder){
				flage = true;
			}
		}
		rs.close();
		pstmt.close();
		return flage;
	}
	
	/***
	 * 菜单顺序向上移动
	 * @throws SQLException 
	 */
	public void menuOrderUp(Menu menu) throws SQLException{
		String sql = "";
		if(menu.getParentMenuId()==0){
			sql = "update SYS_MENU set MENU_ORDER=MENU_ORDER+1 where PARENT_MENU_ID is null" +
					" and MENU_ORDER="+(menu.getMenuId()-1);
		}else{
			sql = sql = "update SYS_MENU set MENU_ORDER=MENU_ORDER+1 where PARENT_MENU_ID=" + 
	 		menu.getParentMenuId()+"and MENU_ORDER="+(menu.getMenuOrder()-1);
		}
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.executeUpdate();
		pstmt.close();
		
		sql = "update SYS_MENU set MENU_ORDER=MENU_ORDER-1 where MENU_ID="+menu.getMenuId();
		pstmt = conn.prepareStatement(sql); 
		pstmt.executeUpdate();
		pstmt.close();
	}
	/**
	 * 验证菜单顺序是否为最底层
	 *
	 */
	public boolean checkMenuOrderBottom(int parentMenuId,int menuOrder) throws SQLException{
		boolean flag = false;
		String sql = "";  
		if(parentMenuId==0){
			sql = "select max(MENU_ORDER)  from  SYS_MENU  where PARENT_MENU_ID is null ";
		}else{
			sql = "select max(MENU_ORDER) from  SYS_MENU  where PARENT_MENU_ID="+parentMenuId;
		}
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs = pstmt.executeQuery();
		if(rs.next()){
			int orderNum = rs.getInt(1);
			if(orderNum==menuOrder){
				flag = true;
			}
		} 
		rs.close();
		pstmt.close();
		return flag;
	}
	/**
	 * 菜单顺序向下移动
	 *  
	 */
	public void menuOrderDown(Menu menu) throws SQLException{
		String sql = "";
		if(menu.getParentMenuId()==0){
			 sql = "update SYS_MENU set MENU_ORDER=MENU_ORDER-1 where PARENT_MENU_ID is null " +
			 		"and MENU_ORDER="+(menu.getMenuOrder()+1);
		}else {
			 sql = "update SYS_MENU set MENU_ORDER=MENU_ORDER-1 where PARENT_MENU_ID=" + 
			 		menu.getParentMenuId()+"and MENU_ORDER="+(menu.getMenuOrder()+1);
		}
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.executeUpdate();
		pstmt.close();
		
		sql = "update SYS_MENU set MENU_ORDER=MENU_ORDER+1 where MENU_ID="+menu.getMenuId();
		pstmt = conn.prepareStatement(sql); 
		pstmt.executeUpdate();
		pstmt.close();
		
	}
	
	/**
	 * 删除菜单
	 * @throws SQLException 
	 */
	public boolean delMenu(Menu menu) throws SQLException{
		boolean flag=true;
		//是否有下级菜单
		String sql = "select count(*) from SYS_POWER where MENU_ID=?";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1,menu.getMenuId());
		ResultSet rs = pstmt.executeQuery();
		if(rs.next()){
			if(rs.getInt(1)>0){
				//有下级不能删除
				flag = false;
			}
		}
		rs.close();
		pstmt.close();
		
		if(flag){
			//删除
			sql = "delete from SYS_MENU where MENU_ID=?";
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1,menu.getMenuId());
			pstmt.executeUpdate();
			pstmt.close();
			//更新菜单顺序
			if(menu.getParentMenuId()==0){
				sql = "update SYS_MENU set MENU_ORDER=MENU_ORDER-1 where " +
						"PARENT_MENU_ID is null and MENU_ORDER>?";
			}else {
				sql = "update SYS_MENU set MENU_ORDER=MENU_ORDER-1 where " +
				"PARENT_MENU_ID ="+menu.getParentMenuId()+" and MENU_ORDER>?";
			}
			pstmt = conn.prepareStatement(sql); 
			pstmt.setInt(1,menu.getMenuOrder());
			pstmt.executeUpdate();
			pstmt.close();
		}
		return flag;
	}
	
	
	
	
	
	
}

⌨️ 快捷键说明

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