public List<Employee> getEmployeeDetails() {
return jdbcTemplate.query(GET_EMPLOYEE_SQL, new RowMapper<Employee>() {
@Override
public Employee mapRow(ResultSet rs, int rowNum) throws SQLException {
Employee employee = new Employee();
employee.setCode(rs.getBigDecimal("cd"));
employee.setAddress(rs.getString("address"));
employee.setContactNo((rs.getString("contactNo")));
return employee;
}
});
}我需要从上面的方法做什么--它的返回列表--但是我需要返回
Map<BigDecimal, List<Employee>> employeeMap = new HashMap<>();
while doing that getting exception 类型不匹配:无法从List>转换为Map
请查找以下代码
public Map<BigDecimal, Employee> getEmployeeDetails() {
Map<BigDecimal, Employee> employeeMap = new HashMap<>();
return jdbcTemplate.query(GET_EMPLOYEE_SQL, new RowMapper<Map<String, Employee>>() {
@Override
public Map<BigDecimal, Employee> mapRow(ResultSet rs, int rowNum) throws SQLException {
Employee employee = new Employee();
employee.setCode(rs.getBigDecimal("cd"));
employee.setAddress(rs.getString("address"));
employee.setContactNo((rs.getString("contactNo")));
employeeMap.put(rs.getBigDecimal("cd"), employee);
return employeeMap;
}
});
}发布于 2020-11-06 06:42:10
你可以做两件事
employeeMap。ResultSetExtractor而不是RowMapper对RowMapper进行操作,因此它总是返回list。使用ResultSetExtractor,您可以做类似的事情
return template.query(GET_EMPLOYEE_SQL, new ResultSetExtractor<Map<BigDecimal, Employee>>() {
@Override
public Map<BigDecimal, Employee> extractData(ResultSet rs) throws SQLException, DataAccessException {
Map<BigDecimal, Employee> employeeMap = new HashMap<>();
while (rs.next()) {
Employee employee = new Employee();
employee.setCode(rs.getBigDecimal("cd"));
employee.setAddress(rs.getString("address"));
employee.setContactNo((rs.getString("contactNo")));
employeeMap.put(rs.getBigDecimal("cd"), employee);
}
return employeeMap;
}
});https://stackoverflow.com/questions/64709525
复制相似问题