多对一映射处理:采用分步查询根据员工ID查询员工信息和员工对应的部门信息用Java实现
时间: 2024-01-06 07:04:15 浏览: 31
首先,我们需要建立一个员工信息类和一个部门信息类,代码如下:
```java
public class Employee {
private int id;
private String name;
private String department;
public Employee(int id, String name, String department) {
this.id = id;
this.name = name;
this.department = department;
}
// getter and setter methods
}
public class Department {
private String name;
private String location;
public Department(String name, String location) {
this.name = name;
this.location = location;
}
// getter and setter methods
}
```
接下来,我们需要建立一个员工信息和部门信息的映射关系类,代码如下:
```java
public class EmployeeDepartmentMap {
private Map<Integer, Employee> employeeMap;
private Map<String, Department> departmentMap;
public EmployeeDepartmentMap() {
employeeMap = new HashMap<>();
departmentMap = new HashMap<>();
// 假设已经有预先设定的员工信息和部门信息
employeeMap.put(1, new Employee(1, "Tom", "Finance"));
employeeMap.put(2, new Employee(2, "Jerry", "Marketing"));
employeeMap.put(3, new Employee(3, "Bob", "HR"));
departmentMap.put("Finance", new Department("Finance", "Beijing"));
departmentMap.put("Marketing", new Department("Marketing", "Shanghai"));
departmentMap.put("HR", new Department("HR", "Guangzhou"));
}
public Employee getEmployeeById(int id) {
return employeeMap.get(id);
}
public Department getDepartmentByEmployee(Employee employee) {
return departmentMap.get(employee.getDepartment());
}
}
```
最后,我们可以在主函数中使用上述类获取员工信息和对应的部门信息,代码如下:
```java
public class Main {
public static void main(String[] args) {
EmployeeDepartmentMap map = new EmployeeDepartmentMap();
Employee employee = map.getEmployeeById(1);
Department department = map.getDepartmentByEmployee(employee);
System.out.println("Employee: " + employee.getName() + ", Department: " + department.getName() + ", Location: " + department.getLocation());
}
}
```
输出结果为:
```
Employee: Tom, Department: Finance, Location: Beijing
```
注意,上述代码只是一个简单的示例,实际情况中需要根据具体需求进行适当的修改。