Map<String, Object> params = new HashMap<String, Object>();
params.put("startDate", startDate);
params.put("endDate", endDate);
StringBuilder sql = new StringBuilder();
sql.append("SELECT s.id as {ss.id}, ");
sql.append("s.report_date as {ss.reportDate},");
sql.append("SUM(s.new_today_count) as {ss.newTodayCount},");
sql.append("SUM(s.new_last_seven_days_count) as {ss.newLastSevenDaysCount},");
sql.append("SUM(s.new_last_thirty_days_count) as {ss.newLastThirtyDaysCount},");
sql.append("SUM(s.total_count) as {ss.totalCount}, ");
sql.append("s.created_date as {ss.createdDate} ");
sql.append("FROM stat_hq_store_daily s ");
sql.append("where s.report_date BETWEEN :startDate AND :endDate ");
if (provinceId > 0) {
sql.append("AND province_id = :provinceId ");
params.put("provinceId", provinceId);
}
if (cityId > 0) {
sql.append("AND city_id = :cityId ");
params.put("cityId", cityId);
}
if (districtId > 0) {
sql.append("AND district_id = :districtId ");
params.put("districtId", districtId);
}
sql.append("GROUP BY s.report_date");
Map<String, Class> classes = new HashMap<String, Class>();
classes.put("ss", StatHqStoreDaily.class);
return (List<StatHqStoreDaily>)sqlQuery(sql.toString(), params, classes);
OR
本文介绍如何使用Java构建动态SQL查询语句,并通过参数化方式安全地传递变量。示例展示了针对不同条件筛选数据的方法,同时支持分组查询。
871

被折叠的 条评论
为什么被折叠?



