为了账号安全,请及时绑定邮箱和手机立即绑定

简单的 jdbcTemplate.query() 应该返回一个列表,但不是

简单的 jdbcTemplate.query() 应该返回一个列表,但不是

慕哥6287543 2022-01-06 19:56:24
我正在使用 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);


查看完整回答
反对 回复 2022-01-06
?
森栏

TA贡献1810条经验 获得超5个赞

原海报回答:

这是一个简单的语法错误。正如评论员指出的那样,我一直在插入错误的表……我在 sql 查询中的语法是错误的。

以前,我插入到“员工”中,但我应该插入到“员工”中。

然而,返回包含 Map 的 List 的 queryForList() 仍然返回 null。我在上面的帖子中对此进行了评论。我不知道这有什么问题(我之前没有尝试过使用 List>)。但是问题解决了。


查看完整回答
反对 回复 2022-01-06
  • 2 回答
  • 0 关注
  • 542 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号