如何使用 Java 8 在 Spring 4 中执行 queryForList?

How to do queryForList in Spring 4 using Java 8?

我正试图同时关注 Spring 4 和 Java 8。我有一个class

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. 我知道我可以通过使用 Mappers 来获取它。但是我想学习如何像上面的例子那样用 Java 8 来做。我看起来很优雅。

public List<EmployeeDTO> getAllEmpoloyeeByAge(Integer age) {

        return springJdbcTemplate.queryForList(sql,<to-do>, age);
    }

Class JdbcTemplate 没有可以将 lambda 表达式传递给的名为 queryForList 的方法。

您需要使用 query 方法之一,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 参数匹配。