4. 请在第三题的表基础上,用Mybatis读取表数据,拼接指定JSON格式并打印在控制台。 “data”: { “张三-软件部”:[1, 1, 90000], “李四-销售部”:[2, 2, 80000], “王五-市场部”:[3, 3, 75000], “老六-软件部”:[4, 1, 90000] } 解释:“人员名 - 部门名”:[‘人员id’,‘部门id’,‘工资’]
时间: 2024-03-05 07:53:23 浏览: 55
mybatis-plus读取JSON类型的方法实现
好的,根据您的要求,我可以提供以下代码来实现您的需求:
```java
// 定义一个Map,用于存储拼接后的数据
Map<String, List<Object>> resultMap = new HashMap<>();
// 使用Mybatis查询数据并进行拼接
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
DepartmentMapper departmentMapper = sqlSession.getMapper(DepartmentMapper.class);
List<Employee> employeeList = employeeMapper.selectAll();
List<Department> departmentList = departmentMapper.selectAll();
for (Employee employee : employeeList) {
String name = employee.getName();
String departmentName = "";
for (Department department : departmentList) {
if (department.getId() == employee.getDepartmentId()) {
departmentName = department.getName();
break;
}
}
String key = name + "-" + departmentName;
List<Object> value = new ArrayList<>();
value.add(employee.getId());
value.add(employee.getDepartmentId());
value.add(employee.getSalary());
resultMap.put(key, value);
}
}
// 将Map转换为指定的JSON格式并打印在控制台
JSONObject json = new JSONObject();
json.put("data", resultMap);
System.out.println(json.toJSONString());
```
以上代码中,我们通过Mybatis进行数据库查询,并将查询结果进行拼接后存储到一个Map中。最后,我们将Map转换为指定的JSON格式,并使用`System.out.println()`方法将其打印在控制台上。
阅读全文