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

📄 empdao.java

📁 应用struts技术开发的java的多表关系的增删改应用程序
💻 JAVA
字号:
package com.xaccp.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import java.util.Vector;
import com.xaccp.db.DBManager;
import com.xaccp.vo.EmpVo;
import com.xaccp.vo.LevelVo;
import com.xaccp.vo.PowerVo;

public class EmpDao {
	/**
	 * 该类为员工的dao
	 */

	/**
	 * 根据员工编号得到员工的详细信息
	 */
	public EmpVo getEmp(int empId){
		//1 连接
		Connection con=DBManager.getConnection();
		//2 sql
		String sql="select emp.empId,emp.empName,emp.empPass,emp.empSex,emp.empLastLoginTime,[level].levelId,[level].levelName,power.powerId,power.powerName"+
		" from power inner join emp_power ON power.powerId = emp_power.powerId RIGHT OUTER JOIN emp INNER JOIN [level] ON emp.empLevelId = [level].levelId ON emp_power.empId = emp.empId "+
		"where emp.empId=?";
		//3 execute sql
		try {
			PreparedStatement ps=con.prepareStatement(sql);
			//预处理 sql 语句
			ps.setInt(1,empId);
			ResultSet rs=ps.executeQuery();
			
			//Empvo实体
			EmpVo empvo=null;
			//Power待遇
			List powers=new Vector();
			while(rs.next()){
				if(empvo==null){
					empvo=new EmpVo();
					empvo.setPowers(powers);  //将员工实体与待遇关联起来
				}
				//将结果集放入员工的实体中
				
				//a 获取员工表信息
				empvo.setEmpId(rs.getInt("empId"));
				empvo.setEmpName(rs.getString("empName"));
				empvo.setEmpPass(rs.getString("empPass"));
				empvo.setEmpSex(rs.getInt("empSex"));
				empvo.setEmpLastLoginTime(rs.getString("empLastLoginTime"));
				// b 获取员工等级表信息
				LevelVo levelvo=new LevelVo();
				levelvo.setLevelId(rs.getInt("levelId"));
				levelvo.setLevelName(rs.getString("levelName"));
				empvo.setLevel(levelvo);
				//c 获取员工待遇信息
				int powerId=rs.getInt("powerId");
				String powerName=rs.getString("powerName");
				if(powerId!=0 && powerName!=null){
					PowerVo powervo=new PowerVo();
					powervo.setPowerId(powerId);
					powervo.setPowerName(powerName);
					powers.add(powervo);
				}
			}
			rs.close();
			ps.close();
			con.close();
			return empvo;
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * 在登陆界面验证用户名和密码
	 */
	public EmpVo checkEmp(EmpVo vo){
		//1 连接
		Connection con=DBManager.getConnection();
		//2 sql
		String sql="select empId from emp where empName=? and empPass=?";
		try {
			//3 execute sql
			PreparedStatement ps=con.prepareStatement(sql);
			//处理预处理 sql 语句中的字段
			ps.setString(1,vo.getEmpName());
			ps.setString(2,vo.getEmpPass());
			
			ResultSet rs=ps.executeQuery();
			EmpVo empvo=null;
			while(rs.next()){
				empvo=this.getEmp(rs.getInt("empId"));
			}
			rs.close();
			ps.close();
			con.close();
			return empvo;
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * 更新用户上次的登陆时间为该次
	 */
	public boolean upateLastLoginTime(EmpVo vo){
		//1 连接
		Connection con=DBManager.getConnection();
		//2 sql
		String sql="update emp set empLastLoginTime= getdate() where empId=?";
		try {
			//3 execute sql
			PreparedStatement ps=con.prepareStatement(sql);
			//处理预处理 sql 语句的字段
			ps.setInt(1,vo.getEmpId());
			int date=ps.executeUpdate();
			ps.close();
			con.close();
			return (date==1);
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		return false;
	}
	
	/**
	 * 得到所有员工的信息
	 */
	public List getAllEmp(){
		//1 连接
		Connection con=DBManager.getConnection();
		//2 sql
		String sql="select empId from emp order by empId";
		try {
			//3 execute sql
			Statement st=con.createStatement();
			ResultSet rs=st.executeQuery(sql);
			
			List list=new Vector();
			while(rs.next()){
				EmpVo empvo=this.getEmp(rs.getInt("empId"));
				list.add(empvo);
			}
			rs.close();
			st.close();
			con.close();
			return list;
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
			return null;
		}
	}
	
	/**
	 * 删除员工
	 */
	public void delEmp(int empId){
		//1 连接
		Connection con=DBManager.getConnection();
		//2 sql
		String sql="delete from emp where empId=?";
		try {
			//3 execute sql
			PreparedStatement ps=con.prepareStatement(sql);
			//处理预处理 sql 语句
			ps.setInt(1,empId);
			ps.executeUpdate();
			ps.close();
			con.close();
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
	}
	
	/**
	 * 修改员工信息
	 */
	public void updateEmp(EmpVo empVo){
		//1 连接
		Connection con=DBManager.getConnection();
		//2 sql
		String sql="update emp set empName=?,empPass=?,empSex=?,empLevelId=? where empId=?";
		try {
			//3 execute sql
			PreparedStatement ps=con.prepareStatement(sql);
			ps.setString(1,empVo.getEmpName());
			ps.setString(2,empVo.getEmpPass());
			ps.setInt(3,empVo.getEmpSex());
			ps.setInt(4,empVo.getLevel().getLevelId());
			ps.setInt(5,empVo.getEmpId());
			
			
			ps.executeUpdate();
			
			ps.close();
			con.close();
			
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
	}
	
	/**
	 * 添加员工信息
	 */
	public void addEmp_Power(EmpVo empVo){
		//1 连接
		Connection con=DBManager.getConnection();
		//2 sql
		String sql="insert into emp (empName,empPass,empSex,empLevelId) values(?,?,?,?)";
		try {
			//3 execute sql
			PreparedStatement ps=con.prepareStatement(sql);
			ps.setString(1,empVo.getEmpName());
			ps.setString(2,empVo.getEmpPass());
			ps.setInt(3,empVo.getEmpSex());
			ps.setInt(4,empVo.getLevel().getLevelId());
			
			
			ps.executeUpdate();
			
			ps.close();
			con.close();
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

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