实体类的设计

实体类也可以被称为数据模型类,这是一种基于 JavaBean 结构的专门用于保存数据模型的类。每一个实体类都要对应一种数据模型,通常会将类的属性与数据表的字段相对应。实体类的属性都是私有的,但每一个属性都提供了 Getter/Setter 方法,外部类需要通过 Getter/Setter 方法来获取或修改实体类的某一个属性值。实体类通常都提供无参方法,根据具体情况来选择是否提供有参构造方法。

本项目共有 3 个实体类,分别为员工类、管理员类和作息时间类,下面分别进行讲解。

员工类

com.mr.clock.pojo 包下的 Employee.java 为员工类,该类与 MySQL 数据库中的 t_emp 表相对应,类中的员工编号、员工名称和员工特征码 3 个属性用于保存表中对应字段的数据。

Employee 类除 JavaBean 结构外,还重写了 hashCode() 方法和 equals() 方法。因为项目会大量使用 HashMap(哈希键值对)和 HashSet(哈希集合),这两种集合类都会通过计算对象哈希值的方式来分配对象在集合中的存储位置,所以需要重写这两个方法来教会集合类如何区分不同的员工对象。在默认情况下,hashCode() 方法会把类中所有的属性都添加到哈希码的计算过程中,但 Employee 类只将员工编号添加到哈希码的计算过程中,这样就可以保证相同编号的员工对象计算出的哈希码也是相同的。简单来说,只要员工对象的员工编号是相同的,不管其数量有多少,它们就代表的都是同一个人,集合类只保存其中一位员工对象即可。Employee 类的关键代码如下:

public class Employee {
    private Integer id;
    private String name;
    private String code;


}

管理员类

com.mr.clock.pojo 包下的 User.java 为管理员类,该类与 MySQL 数据库中的 t_user 表相对应,类中的用户名和密码两个属性用于保存表中对应字段的数据。User 类的关键代码如下:

public class User {
    private String username;     // 用户名
    private String password;     // 密码
}

作息时间类

com.mr.clock.pojo 包下的 WorkTime.java 为作息时间类,该类与 MySQL 数据库中的 t_work_time 表相对应,类中的上班时间和下班时间两个属性用于保存表中对应字段的数据。WorkTime 类的关键代码如下:

public class WorkTime {
    private String start;   // 上班时间
    private String end;    // 下班时间
}