java - 如何通过 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 中获得的数据?
解决方案
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();
});
}
推荐阅读
- python - del(item) 与 python 列表中的 list.remove(item) 有何不同
- php - CSV 文件中的动态内容
- vba - VBA用户表单:复制输入数据并根据月份将它们粘贴到不同的工作表中
- php - PHP登录 - 基于角色的管理员和用户
- javascript - jQuery toastr.js 限制一次显示的消息数
- node.js - 如何在节点中读取单个位缓冲区
- api - 在单独的客户端项目中为 API 生成 TypeScript 函数签名
- dart - Flutter 中的日期时间格式 dd/MM/YYYY hh:mm
- java - 为什么我的应用程序在 Windows 10 上的 C:\Program Files 中而不是在 Windows 7 上时需要管理员权限?
- java - 哪个相当于在 XML 配置文件中使用 @Autowire 注释自动装配接口?