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

标签 java spring java-8 spring-data spring-4

我正在尝试同时了解 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/

相关文章:

java - Android JSON 解析问题

java - 如何在 header 中发送简单信息

lambda - 如何从 Optional<T> 列表中获取第一个非空 Optional<T>

lambda - java 8 lambda toMap 显示类型转换错误

java - '? 附近更新查询中的语法错误在 Eclipse 中但在 MySQL Workbench 中工作

java - 家庭作业帮助(复杂类)

jbehave/storyDurations.props 的 java.io.FileNotFoundException

java - Spring 注入(inject)问题

spring - 404 Error on/spring_security_login 从 Tomcat 6 迁移到 Tomcat 7 后的 Spring Security 3.2

gradle - 更新到Java 1.9后缺少库