![](/img/trans.png)
[英]How to fetch data dynamically in Java Swing from MS Access database?
[英]how to fetch data hierarchal data from database in java
数据库中有员工表,如图所示,使用 jdbc 和 java 从表中获取数据。 预期结果也在图像中。
图像中需要 output
您可以创建一个员工 class,其中包含如下报告列表以及 empId 和 reportingId:
public class Employee {
private String empId;
private String reportingId;
private List<Employee> reports;
public Employee(String empId, String reportingId) {
this.empId = empId;
this.reportingId = reportingId;
this.reports = new ArrayList<>();
}
public String getEmpId() {
return empId;
}
public String getReportingId() {
return reportingId;
}
public List<Employee> getReports() {
return reports;
}
}
// Step 1: Connect to the database
Connection conn = DriverManager.getConnection(connectionString, username, password);
// Step 2: Execute a SELECT statement
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT empId, reportingId FROM employee");
// Step 3: Iterate over the resultset and create a Map of Employee objects
Map<String, Employee> employees = new HashMap<>();
while (rs.next()) {
String empId = rs.getString("empId");
String reportingId = rs.getString("reportingId");
Employee employee = new Employee(empId, reportingId);
employees.put(empId, employee);
}
// Step 4: Iterate over the Map and create the hierarchy of Employee objects
for (Employee employee : employees.values()) {
Employee manager = employees.get(employee.getReportingId());
if (manager != null) {
manager.getReports().add(employee);
}
}
// The hierarchy of Employee objects is now complete
然后,您可以使用递归方法打印 Employee 对象的层次结构,如下所示:
public void printHierarchy(Employee employee, int level) {
for (int i = 0; i < level; i++) {
System.out.print("\t");
}
System.out.println(employee.getEmpId());
for (Employee report : employee.getReports()) {
printHierarchy(report, level + 1);
}
}
从 101 员工调用 printHierarchy 方法
Output:
101
1013
1012
101222
101223
1011
101101
101102
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.