import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class EmployeeDao {
    private Connection conn;

    public EmployeeDao(Connection conn) {
        this.conn = conn;
    }

    public void updateSalary(int empNo, double newSalary) {
        try {
            PreparedStatement pstmt = conn.prepareStatement("UPDATE employees SET salary = ? WHERE emp_no = ?");
            pstmt.setDouble(1, newSalary);
            pstmt.setInt(2, empNo);
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public List<Employee> getEmployeesByTitle(String title) {
        List<Employee> employees = new ArrayList<>();
        try {
            PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM employees JOIN titles ON employees.emp_no = titles.emp_no WHERE titles.title = ?");
            pstmt.setString(1, title);
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                Employee employee = new Employee();
                employee.setEmpNo(rs.getInt("emp_no"));
                employee.setFirstName(rs.getString("first_name"));
                employee.setLastName(rs.getString("last_name"));
                employee.setBirthDate(rs.getDate("birth_date"));
                employee.setGender(rs.getString("gender").charAt(0));
                employee.setHireDate(rs.getDate("hire_date"));
                employee.setSalary(rs.getDouble("salary"));
                employees.add(employee);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return employees;
    }

    public Employee getEmployeeByName(String firstName, String lastName) {
        Employee employee = null;
        try {
            PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM employees WHERE first_name = ? AND last_name = ?");
            pstmt.setString(1, firstName);
            pstmt.setString(2, lastName);
            ResultSet rs = pstmt.executeQuery();
            if (rs.next()) {
                employee = new Employee();
                employee.setEmpNo(rs.getInt("emp_no"));
                employee.setFirstName(rs.getString("first_name"));
                employee.setLastName(rs.getString("last_name"));
                employee.setBirthDate(rs.getDate("birth_date"));
                employee.setGender(rs.getString("gender").charAt(0));
                employee.setHireDate(rs.getDate("hire_date"));
                employee.setSalary(rs.getDouble("salary"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return employee;
    }

    public void deleteEmployeeByName(String firstName, String lastName) {
        try {
            PreparedStatement pstmt = conn.prepareStatement("DELETE FROM employees WHERE first_name = ? AND last_name = ?");
            pstmt.setString(1, firstName);
            pstmt.setString(2, lastName);
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void printSalaryByLastName(String lastNamePrefix) {
        try {
            PreparedStatement pstmt = conn.prepareStatement("SELECT first_name, last_name, salary FROM employees WHERE last_name LIKE ?");
            pstmt.setString(1, lastNamePrefix + "%");
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                String firstName = rs.getString("first_name");
                String lastName = rs.getString("last_name");
                double salary = rs.getDouble("salary");
                System.out.println(lastName + firstName + "=" + salary);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public List<Employee> getEmployeesBySalary(double salary) {
        List<Employee> employees = new ArrayList<>();
        try {
            PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM employees WHERE salary >= ?");
            pstmt.setDouble(1, salary);
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                Employee employee = new Employee();
                employee.setEmpNo(rs.getInt("emp_no"));
                employee.setFirstName(rs.getString("first_name"));
                employee.setLastName(rs.getString("last_name"));
                employee.setBirthDate(rs.getDate("birth_date"));
                employee.setGender(rs.getString("gender").charAt(0));
                employee.setHireDate(rs.getDate("hire_date"));
                employee.setSalary(rs.getDouble("salary"));
                employees.add(employee);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return employees;
    }

    public List<Employee> getEmployeesByDeptNo(String deptNo) {
        List<Employee> employees = new ArrayList<>();
        try {
            PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM employees JOIN dept_emp ON employees.emp_no = dept_emp.emp_no WHERE dept_emp.dept_no = ?");
            pstmt.setString(1, deptNo);
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                Employee employee = new Employee();
                employee.setEmpNo(rs.getInt("emp_no"));
                employee.setFirstName(rs.getString("first_name"));
                employee.setLastName(rs.getString("last_name"));
                employee.setBirthDate(rs.getDate("birth_date"));
                employee.setGender(rs.getString("gender").charAt(0));
                employee.setHireDate(rs.getDate("hire_date"));
                employee.setSalary(rs.getDouble("salary"));
                employees.add(employee);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return employees;
    }
}
``
jdbc:创建EmployeeDao类在该类中定义如下方法1编写方法接收一个员工编号和工资两个参数方法内将指定编号的员工工资修改为新的工资。2编写方法查询指定职位所有员工的信息返回ListEmployee集合。3编写方法查询指定姓名的员工信息返回Employee对象。4编写方法根据员工姓名删除指定的员工信息。5编写方法查询所有姓张员工的工资并输出在控制台输出格式如下:张三=10000张飞=2000

原文地址: https://www.cveoy.top/t/topic/g8rP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录