首页 > 解决方案 > 如何通过 jdbcTemplate 从 lambda 函数返回值?

问题描述

public List<User> getAll(){

        jdbcTemplate.query(query, rs -> {
            Map<Integer, User> userMap= new HashMap<>();

            while (rs.next()) {
                // adding elements

            }
            System.out.println(userMap.values()); // shows me correct result
            return userMap.values(); // not returning
        });
        return null;
    }

此方法返回 null 并忽略 lambda 函数内部的返回。如何接收我在 lambda 中获得的数据?

标签: javaspringjava-8

解决方案


jdbcTemplate.query在这种情况下,将返回您在 lambda 函数上返回的任何内容。在此处查看文档。

所以你可以这样做:

public List<User> getAll(){
    return jdbcTemplate.query(query, rs -> {
        Map<Integer, User> userMap= new HashMap<>();
        while (rs.next()) {
            // adding elements
        }
        return userMap.values();
    });
}

推荐阅读