springboot后端不连接数据库模拟数据的方法

看B站狂神视频学到的后台DAO层模拟数据的方法


在工程中创建pojo实体类和Dao类

springboot后端不连接数据库模拟数据的方法_第1张图片

(1)Department.java

// 部门表
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Department {
    private Integer id;
    private String departmentName;
}

上面的@data用于自动生成get、set方法,

@AllArgsConstructor、@NoArgsConstructor分别用于生成有参构造和无参构造

(2)Employee.java

@Data
@NoArgsConstructor
public class Employee {
    private Integer id;
    private String lastName;
    private String email;
    private Integer sex; //0:女 1:男
    private Department department;
    private Date birth;

    public Employee(Integer id, String lastName, String email, Integer sex, Department department) {
        this.id = id;
        this.lastName = lastName;
        this.email = email;
        this.sex = sex;
        this.department = department;
        //默认创建日期
        this.birth = new Date();
    }
}

上面代码添加有参构造注解是因为日期要自动生成,因此在有参构造中自动生成日期。

(3)DepartmentDao

通过Map接口的key,value存储数据,

初始数据放在静态代码块中static{}

//部门dao
@Repository
public class DepartmentDao {
    private static Map departments = null;

    static {
        departments = new HashMap<>();
        departments.put(101, new Department(101, "教学部"));
        departments.put(102, new Department(102, "市场部"));
        departments.put(103, new Department(103, "教研部"));
        departments.put(104, new Department(104, "运营部"));
        departments.put(105, new Department(105, "后勤部"));
    }

    //获得所有部门信息
    public Collection getDepartments() {
        return departments.values();
    }

    //根据id获取部门
    public Department getDepartmentById(Integer id) {
        return departments.get(id);
    }
}

(4)EmployeeDao

需要注意的是:
a、由于员工是属于某个部门的,因此要在EmployeeDao和DepartmentDao中添加@Repository注解,使其成为spring的bean,

然后就可以使用@Autowired将DepartmentDao注入进去。

b、由于主键是自增的,因此设置静态变量initId来达到添加员工自增id的目的。

//员工表
@Repository
public class EmployeeDao {
    private static Map employees = null;
    @Autowired
    private DepartmentDao departmentDao;

    static {
        employees = new HashMap<>();
        employees.put(1001, new Employee(1001, "AAA", "[email protected]", 0, new Department(1001, "教学部")));
        employees.put(1002, new Employee(1002, "BBB", "[email protected]", 1, new Department(1002, "市场部")));
        employees.put(1003, new Employee(1003, "CCC", "[email protected]", 0, new Department(1003, "教研部")));
        employees.put(1004, new Employee(1004, "DDD", "[email protected]", 1, new Department(1004, "运营部")));
        employees.put(1005, new Employee(1005, "EEE", "[email protected]", 0, new Department(1005, "后勤部")));
    }

    private static Integer initId = 1006;

    //添加员工
    public void save(Employee employee) {
        if (employee.getId() != null) {
            employee.setId(initId++);
        }
        employee.setDepartment(departmentDao.getDepartmentById(employee.getDepartment().getId()));
        employees.put(employee.getId(), employee);
    }

    //获得所有员工信息
    public Collection getAll() {
        return employees.values();
    }

    //根据id获取员工信息
    public Employee getEmployeeById(Integer id) {
        return employees.get(id);
    }

    //删除员工信息
    public void delete(Integer id) {
        employees.remove(id);
    }
}

 

你可能感兴趣的:(SpringBoot)