// 题目一

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

public class EmployeeDao { private Connection conn;

public EmployeeDao() {
    String driver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/test";
    String user = "root";
    String password = "123456";
    try {
        Class.forName(driver);
        conn = DriverManager.getConnection(url, user, password);
    } catch (ClassNotFoundException | SQLException e) {
        e.printStackTrace();
    }
}

// 1. 编写方法接收一个员工编号和工资两个参数,方法内将指定编号的员工工资修改为新的工资。
public boolean updateSalary(int empno, double salary) {
    try {
        PreparedStatement ps = conn.prepareStatement("update emp set sal = ? where empno = ?");
        ps.setDouble(1, salary);
        ps.setInt(2, empno);
        int result = ps.executeUpdate();
        ps.close();
        return result > 0;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

// 2. 编写方法查询指定职位所有员工的信息,返回List<Employee>集合。
public List<Employee> findByJob(String job) {
    List<Employee> employees = new ArrayList<>();
    try {
        PreparedStatement ps = conn.prepareStatement("select * from emp where job = ?");
        ps.setString(1, job);
        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            Employee employee = new Employee();
            employee.setEmpno(rs.getInt("empno"));
            employee.setEname(rs.getString("ename"));
            employee.setJob(rs.getString("job"));
            employee.setMgr(rs.getInt("mgr"));
            employee.setHiredate(rs.getDate("hiredate"));
            employee.setSal(rs.getDouble("sal"));
            employee.setComm(rs.getDouble("comm"));
            employee.setDeptno(rs.getInt("deptno"));
            employees.add(employee);
        }
        rs.close();
        ps.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return employees;
}

// 3. 编写方法查询指定姓名的员工信息,返回Employee对象。
public Employee findByName(String name) {
    try {
        PreparedStatement ps = conn.prepareStatement("select * from emp where ename = ?");
        ps.setString(1, name);
        ResultSet rs = ps.executeQuery();
        if (rs.next()) {
            Employee employee = new Employee();
            employee.setEmpno(rs.getInt("empno"));
            employee.setEname(rs.getString("ename"));
            employee.setJob(rs.getString("job"));
            employee.setMgr(rs.getInt("mgr"));
            employee.setHiredate(rs.getDate("hiredate"));
            employee.setSal(rs.getDouble("sal"));
            employee.setComm(rs.getDouble("comm"));
            employee.setDeptno(rs.getInt("deptno"));
            rs.close();
            ps.close();
            return employee;
        }
        rs.close();
        ps.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

// 4. 编写方法根据员工姓名删除指定的员工信息。
public boolean deleteByName(String name) {
    try {
        PreparedStatement ps = conn.prepareStatement("delete from emp where ename = ?");
        ps.setString(1, name);
        int result = ps.executeUpdate();
        ps.close();
        return result > 0;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

// 5. 编写方法查询所有姓张员工的工资并输出在控制台,输出格式如下: 张三=10000 张飞=20000 ………………….
public void printSalaryByZhang() {
    try {
        PreparedStatement ps = conn.prepareStatement("select ename,sal from emp where ename like '张%'");
        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            System.out.println(rs.getString("ename") + "=" + rs.getDouble("sal"));
        }
        rs.close();
        ps.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

// 6. 编写方法接收一个工资参数,方法内查询工资大于等于传入的工资的员工,返回符合条件所有员工信息List<Employee>集合。
public List<Employee> findBySalary(double salary) {
    List<Employee> employees = new ArrayList<>();
    try {
        PreparedStatement ps = conn.prepareStatement("select * from emp where sal >= ?");
        ps.setDouble(1, salary);
        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            Employee employee = new Employee();
            employee.setEmpno(rs.getInt("empno"));
            employee.setEname(rs.getString("ename"));
            employee.setJob(rs.getString("job"));
            employee.setMgr(rs.getInt("mgr"));
            employee.setHiredate(rs.getDate("hiredate"));
            employee.setSal(rs.getDouble("sal"));
            employee.setComm(rs.getDouble("comm"));
            employee.setDeptno(rs.getInt("deptno"));
            employees.add(employee);
        }
        rs.close();
        ps.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return employees;
}

// 7. 编写方法查询指定部门的所有员工信息,返回List<Employee>集合
public List<Employee> findByDeptno(int deptno) {
    List<Employee> employees = new ArrayList<>();
    try {
        PreparedStatement ps = conn.prepareStatement("select * from emp where deptno = ?");
        ps.setInt(1, deptno);
        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            Employee employee = new Employee();
            employee.setEmpno(rs.getInt("empno"));
            employee.setEname(rs.getString("ename"));
            employee.setJob(rs.getString("job"));
            employee.setMgr(rs.getInt("mgr"));
            employee.setHiredate(rs.getDate("hiredate"));
            employee.setSal(rs.getDouble("sal"));
            employee.setComm(rs.getDouble("comm"));
            employee.setDeptno(rs.getInt("deptno"));
            employees.add(employee);
        }
        rs.close();
        ps.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return employees;
}

}

// 题目二

import java.util.Scanner;

public class UserSystem { private UserService userService = new UserService();

public static void main(String[] args) {
    UserSystem userSystem = new UserSystem();
    userSystem.start();
}

public void start() {
    System.out.println("欢迎使用用户管理系统");
    Scanner scanner = new Scanner(System.in);
    while (true) {
        System.out.println("请选择编号实现对应的功能:");
        System.out.println("1 登录");
        System.out.println("2 注册");
        System.out.println("3 修改密码");
        int choice = scanner.nextInt();
        switch (choice) {
            case 1:
                login(scanner);
                break;
            case 2:
                register(scanner);
                break;
            case 3:
                changePassword(scanner);
                break;
            default:
                System.out.println("输入有误,请重新选择!");
        }
    }
}

private void login(Scanner scanner) {
    System.out.println("请输入用户名:");
    String username = scanner.next();
    System.out.println("请输入密码:");
    String password = scanner.next();
    if (userService.login(username, password)) {
        System.out.println("登录成功!");
    } else {
        System.out.println("用户名或密码不正确,登录失败,请重新登录!");
    }
}

private void register(Scanner scanner) {
    System.out.println("请输入用户名:");
    String username = scanner.next();
    System.out.println("请输入密码:");
    String password = scanner.next();
    System.out.println("请输入性别:");
    String gender = scanner.next();
    System.out.println("请输入地址:");
    String address = scanner.next();
    if (userService.register(username, password, gender, address)) {
        System.out.println("注册成功!");
    } else {
        System.out.println("注册失败,请重新输入用户名!");
    }
}

private void changePassword(Scanner scanner) {
    System.out.println("请输入用户名:");
    String username = scanner.next();
    System.out.println("请输入密码:");
    String password = scanner.next();
    if (userService.login(username, password)) {
        System.out.println("登录成功,欢迎使用本系统!");
        System.out.println("请输入新密码:");
        String newPassword = scanner.next();
        userService.changePassword(username, newPassword);
        System.out.println("密码修改成功!");
    } else {
        System.out.println("用户名或密码不正确,请重新输入!");
    }
}

}

import java.sql.*;

public class UserDao { private Connection conn;

public UserDao() {
    String driver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/test";
    String user = "root";
    String password = "123456";
    try {
        Class.forName(driver);
        conn = DriverManager.getConnection(url, user, password);
    } catch (ClassNotFoundException | SQLException e) {
        e.printStackTrace();
    }
}

public boolean register(User user) {
    try {
        PreparedStatement ps = conn.prepareStatement("insert into user(username, password, gender, address) values (?, ?, ?, ?)");
        ps.setString(1, user.getUsername());
        ps.setString(2, user.getPassword());
        ps.setString(3, user.getGender());
        ps.setString(4, user.getAddress());
        int result = ps.executeUpdate();
        ps.close();
        return result > 0;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

public User findByUsername(String username) {
    try {
        PreparedStatement ps = conn.prepareStatement("select * from user where username = ?");
        ps.setString(1, username);
        ResultSet rs = ps.executeQuery();
        if (rs.next()) {
            User user = new User();
            user.setUsername(rs.getString("username"));
            user.setPassword(rs.getString("password"));
            user.setGender(rs.getString("gender"));
            user.setAddress(rs.getString("address"));
            rs.close();
            ps.close();
            return user;
        }
        rs.close();
        ps.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

public boolean updatePassword(String username, String password) {
    try {
        PreparedStatement ps = conn.prepareStatement("update user set password = ? where username = ?");
        ps.setString(1, password);
        ps.setString(2, username);
        int result = ps.executeUpdate();
        ps.close();
        return result > 0;
    } catch (SQLException e) {
        e.printStackTrace();
        return false;
    }
}

public void close() {
    try {
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

}

public class UserService { private UserDao userDao = new UserDao();

public boolean register(String username, String password, String gender, String address) {
    User user = userDao.findByUsername(username);
    if (user != null) {
        return false;
    }
    user = new User();
    user.setUsername(username);
    user.setPassword(password);
    user.setGender(gender);
    user.setAddress(address);
    return userDao.register(user);
}

public boolean login(String username, String password) {
    User user = userDao.findByUsername(username);
    if (user != null && user.getPassword().equals(password)) {
        return true;
    }
    return false;
}

public boolean changePassword(String username, String password) {
    return userDao.updatePassword(username, password);
}

public void close() {
    userDao.close();
}

}

public class User { private String username; private String password; private String gender; private String address;

public User() {
}

public User(String username, String password, String gender, String address) {
    this.username = username;
    this.password = password;
    this.gender = gender;
    this.address = address;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getGender() {
    return gender;
}

public void setGender(String gender) {
    this.gender = gender;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

@Override
public String toString() {
    return "User{" +
            "username='" + username + '\'' +
            ", password='" + password + '\'' +
            ", gender='" + gender + '\'' +
            ", address='" + address + '\'' +
            '}';
}
完成并详细注释题目一根据之前在学习mysql的时候的emp表和dept表1 CREATE TABLE emp2 empno INT3 ename VARCHAR504 job VARCHAR505 mgr INT6 hiredate DATE7 sal DECIMAL728 comm decimal729 deptno INT10 ;111213 INSERT INTO emp values73

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

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