我正在尝试同时了解 Spring 4 和 Java 8。我有课
EmployeeDTO
|-id
|-Emp_Name
|-Address
当我尝试使用以下代码来获取 1 名员工时,它工作正常:
public EmployeeDTO getEmpoloyeebyID(String empId) {
return springJdbcTemplate.queryForObject(sql,
(rs, rowNum) -> {
return new EmployeeDTO(rs.getString("Emp_Name"), rs
.getString("Address"));
}, empId);
}
但现在我想使用 Spring jdbcTemplate 和 Java 8 获取对象列表。我知道我也许可以通过使用映射器来获取它。但我想学习如何使用 Java 8 来做到这一点,就像上面的例子一样。我看起来很优雅。
public List<EmployeeDTO> getAllEmpoloyeeByAge(Integer age) {
return springJdbcTemplate.queryForList(sql,<to-do>, age);
}
最佳答案
类JdbcTemplate
没有名为 queryForList
的方法,您可以将 lambda 表达式传递给该方法。
您需要使用其中一种查询
方法,the one它接受一个 SQL 字符串、一个 RowMapper 和查询参数:
public List<EmployeeDTO> getAllEmployeesByAge(int age) {
return springJdbcTemplate.query(sql, (rs, rowNum) ->
new EmployeeDTO(rs.getString("Emp_Name"), rs.getString("Address")), age);
}
请注意,您的 lambda 表达式与 query
方法的 RowMapper
参数相匹配。
关于java - 如何使用 Java 8 在 Spring 4 中执行 queryForList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37921000/