使用JdbcTemplate批量查询数据的方法
/*** 按单位分类汇总指定日期范围内的交易数据* @param startDate 开始日期* @param endDate 结束日期* @return 按单位分类的汇总结果*/public List<UnitSummary> summarizeByUnit(Date startDate, Date endDate) {String sql = "SELECT " +" unit_code, " +" unit_name, " +" COUNT(*) as transaction_count, " +" SUM(amount) as total_amount, " +" AVG(amount) as avg_amount " +"FROM transaction_records " +"WHERE transaction_date BETWEEN :startDate AND :endDate " +"GROUP BY unit_code, unit_name " +"ORDER BY total_amount DESC";Map<String, Object> params = new HashMap<>();params.put("startDate", startDate);params.put("endDate", endDate);return namedParameterJdbcTemplate.query(sql, params, new RowMapper<UnitSummary>() {@Overridepublic UnitSummary mapRow(ResultSet rs, int rowNum) throws SQLException {UnitSummary summary = new UnitSummary();summary.setUnitCode(rs.getString("unit_code"));summary.setUnitName(rs.getString("unit_name"));summary.setTransactionCount(rs.getInt("transaction_count"));summary.setTotalAmount(rs.getBigDecimal("total_amount"));summary.setAvgAmount(rs.getBigDecimal("avg_amount"));return summary;}});}/*** 批量查询并分类汇总(组合操作)* @param startDate 开始日期* @param endDate 结束日期* @return 包含原始记录和汇总结果的对象*/public TransactionSummaryResult getTransactionSummary(Date startDate, Date endDate) {List<TransactionRecord> records = findRecordsByDateRange(startDate, endDate);List<UnitSummary> summaries = summarizeByUnit(startDate, endDate);return new TransactionSummaryResult(records, summaries);}
}// 组合查询结果类
@Data
@AllArgsConstructor
public class TransactionSummaryResult {private List<TransactionRecord> records;private List<UnitSummary> summaries;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/news/919448.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!