我正在使用 spring 4.0(引导),这是代码: String sql = "SELECT emp_id,name,role FROM employees"; List<Employee> employees = jdbcTemplate.query(sql,(rs, rowNum)-> new Employee(rs.getInt("emp_id"), rs.getString("name"), rs.getString("role"))); employees.forEach(employee -> {log.info(employee.toString()); log.info("part a");});代码看起来如此简单明了,但问题是员工根本没有在日志中返回任何内容。这不是意味着员工中的一切都是空的吗?Logger 本身应该没有问题,因为此代码之前的日志记录有效。数据库被正确输入。当我通过 mysql 客户端查询时,我可以在那里看到它们。我犯了什么样的 Java 错误(如果有的话)?
2 回答

郎朗坤
TA贡献1921条经验 获得超9个赞
您可以使用另一种方式获取员工列表:
private static final RowMapper<Employee> ROW_MAPPER = BeanPropertyRowMapper.newInstance(Employee.class);
String sql = "SELECT emp_id,name,role FROM employees";
List<Employee> employees = jdbcTemplate.query(sql, ROW_MAPPER);
或者
List<Employee> employees = jdbcTemplate.queryForList(sql, Employee.class);

森栏
TA贡献1810条经验 获得超5个赞
原海报回答:
这是一个简单的语法错误。正如评论员指出的那样,我一直在插入错误的表……我在 sql 查询中的语法是错误的。
以前,我插入到“员工”中,但我应该插入到“员工”中。
然而,返回包含 Map 的 List 的 queryForList() 仍然返回 null。我在上面的帖子中对此进行了评论。我不知道这有什么问题(我之前没有尝试过使用 List>)。但是问题解决了。
添加回答
举报
0/150
提交
取消