【发布时间】:2022-12-15 07:30:42
【问题描述】:
我经常及时使用 jdbcTemplate.query 不返回结果集,而是访问数据库并对每个选定的记录进行一些计算。 例如下面的代码有效
Map<String, Double> mAcc = new HashMap<>();
sql = "select ar.id_codice_art, sum(ar.quantita) quantita\n" +
"from accettazione a \n" +
"inner join accettazione_riga ar on a.id_accettazione = ar.id_accettazione\n" +
"where a.id_ordine = ? \n" +
"group by ar.id_codice_art";
jdbcTemplate.query(sql, (rs, i)->{
mAcc.put(rs.getString("id_codice_art"), rs.getDouble("quantita"));
return "";
}, idOrdine);
但它并不干净,尤其是当返回“”时,因为 RowMapper 接口需要它。同时我不想创建一个记录或一个类只是为了返回一个列表并在列表上工作。
有没有更好的方法来使用 jdbcTemplate 做同样的事情?
【问题讨论】:
-
“如何使用 JDBCTemplate.queryForMap 获取地图数据”没有回答我的问题。我的问题不是从结果集中填充地图,而是对可用于任何计算的每条记录进行回调。在我看来,下面皮特的回答是一个更清洁的解决方案。
标签: java spring jdbctemplate