Skip to content

用户登录


实现逻辑

在界面层接收用户输入后,编写一个函数验证是否登录成功

接收传入的帐号和密码,使用 EmployeeDao 查询

界面层根据函数返回的结果是否为空判断是否登录成功

EmployeeService 类

在 service 包下创建 EmployeeService 类,编写 getEmployeeByIdAndPwd(String empId, String pwd) 方法

java
package service;

import dao.EmployeeDao;
import domain.Employee;

public class EmployeeService {

    //定义一个 EmployeeDAO 属性
    private EmployeeDao employeeDao = new EmployeeDao();

    /**
     * @param empId
     * @param pwd
     * @return Employee
     *
     * 登录验证功能,传入用户名,密码
     * 返回一个 Employee 对象,在主菜单中判断 Employee 是否为空进而判断是否登录成功
     */
    public Employee getEmployeeByIdAndPwd(String empId, String pwd) {
        return employeeDao.queryLine("select * from employee where empId=? and pwd=md5(?)", Employee.class, empId, pwd);
    }
}

View 类逻辑补充

java
package view;

import domain.Employee;
import service.EmployeeService;
import utils.Utility;

/**
 * ClassName: logInView
 * Package: view
 * Description:
 *
 * @author jacksonling
 * @version 1.0
 * @Date 2025-08-06 14:09
 */

public class View {
    // 循环结束标志
    boolean loop = true;
    // 接收用户输入
    String key = "";

    // 创建 EmployeeService 对象
    EmployeeService employeeService = new EmployeeService();
    //显示主菜单
    public void mainMenu() {
        while (loop) {
            System.out.println("\n===============满汉楼================");
            System.out.println("\t\t 1 登录满汉楼");
            System.out.println("\t\t 2 退出满汉楼");
            System.out.print("请输入你的选择: ");
            key = Utility.readString(1);
            switch (key) {
                case "1":
                    System.out.print("输入员工号: ");
                    String empId = Utility.readString(50);
                    System.out.print("输入密  码: ");
                    String pwd = Utility.readString(50);
                    Employee employee = employeeService.getEmployeeByIdAndPwd(empId, pwd);
                    if (employee != null) { //说明存在该用户
                        System.out.println("===============登录成功[" + employee.getName() + "]================\n");
                        //显示二级菜单, 这里二级菜单是循环操作,所以做成while
                        while (loop) {
                            System.out.println("\n===============满汉楼(二级菜单)================");
                            System.out.println("\t\t 1 显示餐桌状态");
                            System.out.println("\t\t 2 预定餐桌");
                            System.out.println("\t\t 3 显示所有菜品");
                            System.out.println("\t\t 4 点餐服务");
                            System.out.println("\t\t 5 查看账单");
                            System.out.println("\t\t 6 结账");
                            System.out.println("\t\t 9 退出满汉楼");
                            System.out.print("请输入你的选择: ");
                            key = Utility.readString(1);
                            switch (key) {
                                case "1":
                                    // 显示餐桌状态
                                    System.out.println("显示餐桌状态");
                                    break;
                                case "2":
                                    // 预定餐桌
                                    System.out.println("预定餐桌");
                                    break;
                                case "3":
                                    // 显示所有菜品
                                    System.out.println("显示所有菜品");
                                    break;
                                case "4":
                                    // 点餐服务
                                    System.out.println("点餐服务");
                                    break;
                                case "5":
                                    // 查看账单
                                    System.out.println("查看账单");
                                    break;
                                case "6":
                                    // 结账
                                    System.out.println("结账");
                                    break;
                                case "9":
                                    loop = false;
                                    break;
                                default:
                                    System.out.println("你的输入有误,请重新输入");
                                    break;
                            }
                        }
                    } else {
                        System.out.println("=====登录失败(用户名 / 密码错误)=====");
                    }
                    break;
                case "2":
                    loop = false;//
                    break;
                default:
                    System.out.println("你输入有误,请重新输入.");
            }
        }
        System.out.println("退出了满汉楼系统~");
    }
}