Я пытаюсь отправить оператор jdbcTemplate.queryForList в методе viewEmployees из моего класса EmployeeDAO в другой метод с именем EmployeeServiceImpl.
Я использую Spring Boot ..
public class EmployeeDAO{
public List<Map<String,Object>> viewEmployees() {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//This is where i make the sql-statement
List<Map<String, Object>> rows = jdbcTemplate.queryForList("SELECT * FROM employee");
//here I want to return an List<Map<String,Object>> of rows
return rows;
}
}
Это другой метод, в котором я хочу, чтобы возвращаемое значение было отправлено:
public List viewEmployees(){List<Employee> employees = new ArrayList<>();
EmployeeDAO employeeDAO = new EmployeeDAO();
List<Map<String, Object>> rows = employeeDAO.viewEmployees();
//For loop of rows (Employees)
for (Map row : rows) {
Employee employee = new Employee();
employee.setId((int) (row.get("id")));
employee.setName((String) (row.get("name")));
employee.setPosition((String) (row.get("position")));
employee.setProvision_goal((int) (row.get("provision_goal")));
employee.setProvision_accumulated((int) (row.get("provision_accumulated")));
employees.add(employee);
}
return employees;
}
Я продолжаю получатьошибка:
java.lang.IllegalArgumentException: Property 'dataSource' is required
at org.springframework.jdbc.support.JdbcAccessor.afterPropertiesSet(JdbcAccessor.java:160) ~[spring-jdbc-5.0.5.RELEASE.jar:5.0.5.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.<init>(JdbcTemplate.java:166) ~[spring-jdbc-5.0.5.RELEASE.jar:5.0.5.RELEASE]
at com.example.demo.dao.EmployeeDAO.viewEmployees(EmployeeDAO.java:37) ~[classes/:na]
at com.example.demo.services.EmployeeServiceImpl.viewEmployees(EmployeeServiceImpl.java:61) ~[classes/:na]
at com.example.demo.controller.HomeController.home(HomeController.java:37) ~[classes/:na]
Как вернуть строки?
Мой источник данных определен:
@Qualifier("dataSource")
@Autowired
DataSource dataSource;
Когда я объединяю оба метода, у меня нет проблем скод.Проблема, кажется, когда я пытаюсь вернуть строки в EmployeeDAO.