我正在尝试将类employeedao中方法viewemployees中的jdbctemplate.queryforlist语句发送到另一个名为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中的行时。
1条答案
按热度按时间0aydgbwb1#
我就是这样定义数据源的
上下文.xml