我正在使用 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
提交
取消