org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate#queryForList ( )源码实例Demo

下面列出了org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate#queryForList ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: openemm   文件: DBase.java
private List <Map <String, Object>> doQuery (NamedParameterJdbcTemplate jdbc, String q, Map <String, Object> packed) throws SQLException {
	show ("QLM", q, packed);

	Retry <List <Map <String, Object>>>	r = new Retry <List <Map <String, Object>>> ("queryList", this, jdbc) {
		@Override
		public void execute () throws SQLException {
			priv = jdbc.queryForList (q, packed);
		}
	};
	if (retry (r)) {
		return r.priv;
	}
	throw failure (q, r.error);
}
 
源代码2 项目: jeecg-cloud   文件: DynamicDBUtil.java
/**
 * 支持miniDao语法操作的查询
 *
 * @param dbKey 数据源标识
 * @param sql   执行sql语句,sql支持minidao语法逻辑
 * @param data  sql语法中需要判断的数据及sql拼接注入中需要的数据
 * @return
 */
public static List<Map<String, Object>> findListByHash(final String dbKey, String sql, HashMap<String, Object> data) {
    List<Map<String, Object>> list;
    JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
    //根据模板获取sql
    sql = FreemarkerParseFactory.parseTemplateContent(sql, data);
    NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate.getDataSource());
    list = namedParameterJdbcTemplate.queryForList(sql, data);
    return list;
}
 
源代码3 项目: jeecg-cloud   文件: DynamicDBUtil.java
/**
 * 支持miniDao语法操作的查询 返回单列数据list
 *
 * @param dbKey 数据源标识
 * @param sql   执行sql语句,sql支持minidao语法逻辑
 * @param clazz 类型Long、String等
 * @param data  sql语法中需要判断的数据及sql拼接注入中需要的数据
 * @return
 */
public static <T> List<T> findListByHash(final String dbKey, String sql, Class<T> clazz, HashMap<String, Object> data) {
    List<T> list;
    JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
    //根据模板获取sql
    sql = FreemarkerParseFactory.parseTemplateContent(sql, data);
    NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate.getDataSource());
    list = namedParameterJdbcTemplate.queryForList(sql, data, clazz);
    return list;
}
 
源代码4 项目: teaching   文件: DynamicDBUtil.java
/**
 * 支持miniDao语法操作的查询
 *
 * @param dbKey 数据源标识
 * @param sql   执行sql语句,sql支持minidao语法逻辑
 * @param data  sql语法中需要判断的数据及sql拼接注入中需要的数据
 * @return
 */
public static List<Map<String, Object>> findListByHash(final String dbKey, String sql, HashMap<String, Object> data) {
    List<Map<String, Object>> list;
    JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
    //根据模板获取sql
    sql = FreemarkerParseFactory.parseTemplateContent(sql, data);
    NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate.getDataSource());
    list = namedParameterJdbcTemplate.queryForList(sql, data);
    return list;
}
 
源代码5 项目: teaching   文件: DynamicDBUtil.java
/**
 * 支持miniDao语法操作的查询 返回单列数据list
 *
 * @param dbKey 数据源标识
 * @param sql   执行sql语句,sql支持minidao语法逻辑
 * @param clazz 类型Long、String等
 * @param data  sql语法中需要判断的数据及sql拼接注入中需要的数据
 * @return
 */
public static <T> List<T> findListByHash(final String dbKey, String sql, Class<T> clazz, HashMap<String, Object> data) {
    List<T> list;
    JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
    //根据模板获取sql
    sql = FreemarkerParseFactory.parseTemplateContent(sql, data);
    NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate.getDataSource());
    list = namedParameterJdbcTemplate.queryForList(sql, data, clazz);
    return list;
}
 
private Object executeWithJdbcTemplate(NativeQueryInfo info) {
    NamedParameterJdbcTemplate jdbcTemplate = ApplicationContextProvider.getApplicationContext().getBean(NamedParameterJdbcTemplate.class);

    Map<String, Object> parametroList = new HashMap<>();
    for (NativeQueryParameter parametro : info.getParameterList()) {
        if (parametro.getValue() != null && info.getSql().contains(":" + parametro.getName())) {
            parametroList.put(parametro.getName(), parametro.getValue());
        }
    }

    BeanPropertyRowMapper<?> beanPropertyRowMapper = new BeanPropertyRowMapper<>(info.getAliasToBean());
    if (info.getReturnType().getSimpleName().equals(Void.TYPE.getName())) {
        jdbcTemplate.update(info.getSql(), parametroList);
        return null;
    }

    if (info.isSingleResult()) {
        if (info.isJavaObject()) {
            return jdbcTemplate.queryForObject(info.getSql(), parametroList, info.getAliasToBean());
        }

        if (info.returnTypeIsOptional()) {
            return getOptionalReturn(() -> jdbcTemplate.queryForObject(info.getSql(), parametroList, beanPropertyRowMapper));
        }

        return jdbcTemplate.queryForObject(info.getSql(), parametroList, beanPropertyRowMapper);
    }

    if (info.isJavaObject()) {
        return jdbcTemplate.queryForList(info.getSql(), parametroList, info.getAliasToBean());
    }
    return jdbcTemplate.query(info.getSql(), parametroList, beanPropertyRowMapper);
}
 
源代码7 项目: jeecg-boot   文件: DynamicDBUtil.java
/**
 * 支持miniDao语法操作的查询
 *
 * @param dbKey 数据源标识
 * @param sql   执行sql语句,sql支持minidao语法逻辑
 * @param data  sql语法中需要判断的数据及sql拼接注入中需要的数据
 * @return
 */
public static List<Map<String, Object>> findListByHash(final String dbKey, String sql, HashMap<String, Object> data) {
    List<Map<String, Object>> list;
    JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
    //根据模板获取sql
    sql = FreemarkerParseFactory.parseTemplateContent(sql, data);
    NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate.getDataSource());
    list = namedParameterJdbcTemplate.queryForList(sql, data);
    return list;
}
 
源代码8 项目: bamboobsc   文件: ExportData2CsvUtils.java
private static String processCsvText(ExportDataConfig config, NamedParameterJdbcTemplate jdbcTemplate, 
		Map<String, Object> sqlParamMap) throws Exception {
	logger.info("export-Id: " + config.getId() + " name: " + config.getName());
	StringBuilder out = new StringBuilder();
	out.append(config.getTitle()).append("\r\n");
	List<Map<String, Object>> results = jdbcTemplate.queryForList(config.getSql(), sqlParamMap);
	for (int i=0; results!=null && i<results.size(); i++) {
		Map<String, Object> dataMap = results.get(i);
		for (Map.Entry<String, Object> entry : dataMap.entrySet()) {
			if ( entry.getValue() != null ) {
				String str = "";
				if (entry.getValue() instanceof byte[]) { // blob text
					str = new String( (byte[])entry.getValue() , Constants.BASE_ENCODING );
				} else {
					str = String.valueOf( entry.getValue() );
				}					
				if (config.isEscapeCsv()) {
					//str = StringEscapeUtils.escapeCsv(str);
					str = SimpleUtils.escapeCsv(str);
				}
				if (StringUtils.isBlank(str)) {
					str = " ";
				}
				out.append("\"").append(str).append("\"");					
			} else {
				out.append(" ");
			}
			out.append( config.getSeparateSymbol() );
		}
		out.append("\r\n");
	}
	return out.toString();
}
 
源代码9 项目: jeecg   文件: DynamicDBUtil.java
/**
 * 支持miniDao语法操作的查询 返回单列数据list
 * @param dbKey 数据源标识
 * @param sql 执行sql语句,sql支持minidao语法逻辑
 * @param clazz 类型Long、String等
 * @param data sql语法中需要判断的数据及sql拼接注入中需要的数据
 * @return
 */
public static <T> List<T> findListByHash(final String dbKey, String sql, Class<T> clazz, HashMap<String, Object> data){
	List<T> list;
	JdbcTemplate jdbcTemplate = getJdbcTemplate(dbKey);
	//根据模板获取sql
	sql = FreemarkerParseFactory.parseTemplateContent(sql, data);
	NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate.getDataSource());
	list = namedParameterJdbcTemplate.queryForList(sql, data, clazz);
	return list;
}
 
/**
 * 方法名: buildPie
 * 功 能: TODO(这里用一句话描述这个方法的作用)
 * 参 数: @param map
 * 参 数: @param info
 * 参 数: @param list
 * 返 回: void
 * 作 者 : Administrator
 * @throws
 */
public void buildPie(Map<String, Object> map, SysDbmsChartDimension info, StringBuilder sbWhere, String type1, String tableName) {
	
	List<String> legend_data = new ArrayList<>();
	List<Map<String, Object>> series_data = new ArrayList<>();
	StringBuilder sql = new StringBuilder();
	Map<String, Object> param = new HashMap<>();
	// 默认表结构
	sql.append(" select  " + type1 + " as aks,count(1) as num");
	sql.append(" from " + tableName + "  ");
	sql.append(" where 1=1 ");
	sql.append(" and  " + type1 + " is not null ");
	sql.append(" and  " + type1 + " <> '' ");
	sql.append(sbWhere.toString());
	sql.append(" group by  " + type1);

	NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(jdbcTemplate);
	List<Map<String, Object>> listMap = template.queryForList(sql.toString(), param);
	for (Map<String, Object> map2 : listMap) {
		legend_data.add(map2.get("aks").toString());
		// {value:92503371, name:'男'}
		Map<String, Object> data = new HashMap<>();
		data.put("value", Integer.valueOf(map2.get("num").toString()));
		data.put("name", map2.get("aks").toString());
		series_data.add(data);
	}
	map.put("legend_data", legend_data);
	map.put("series_data", series_data);
	map.put("chartType", info.getChartType());
}
 
/**
 * @方法名 buildPieSum
 * @功能 TODO(这里用一句话描述这个方法的作用)
 * @参数 @param map
 * @参数 @param info
 * @参数 @param sbWhere
 * @参数 @param type1
 * @返回 void
 * @author Administrator
 * @throws
 */
public void buildPieSum(Map<String, Object> map, SysDbmsChartDimension info, StringBuilder sbWhere, String type1, String tableName) {
	List<String> legend_data = new ArrayList<>();
	List<Map<String, Object>> series_data = new ArrayList<>();
	StringBuilder sql = new StringBuilder();
	Map<String, Object> param = new HashMap<>();
	// 默认表结构
	sql.append(" SELECT  " + type1 + " AS AKS,SUM(`总中标金额`) AS NUM");
	sql.append(" FROM " + tableName + "  ");
	sql.append(" WHERE  DELETE_FLAG = 0  ");
	sql.append(" AND  " + type1 + " IS NOT NULL ");
	sql.append(" AND  " + type1 + " <> '' ");
	sql.append(" AND  公告类型 IN('中标公告','成交公告') ");
	sql.append(sbWhere.toString());
	sql.append(" group by  " + type1);
	
	NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(jdbcTemplate);
	List<Map<String, Object>> listMap = template.queryForList(sql.toString(), param);
	for (Map<String, Object> map2 : listMap) {
		legend_data.add(map2.get("AKS").toString());
		// {value:92503371, name:'男'}
		Map<String, Object> data = new HashMap<>();
		data.put("value", Double.valueOf(map2.get("NUM") == null ? "0" : map2.get("NUM").toString()).longValue());
		data.put("name", map2.get("AKS").toString());
		series_data.add(data);
	}
	map.put("legend_data", legend_data);
	map.put("series_data", series_data);
	map.put("chartType", info.getChartType());

}
 
/**
 * @param tableName
 * 方法名: buildBarOrLineType1
 * 功 能: TODO(这里用一句话描述这个方法的作用)
 * 参 数: @param sbWhere
 * 参 数: @param type1
 * 参 数: @param info
 * 参 数: @param map
 * 返 回: void
 * 作 者 : Administrator
 * @throws
 */
private void buildBarOrLineType1(StringBuilder sbWhere, String type1, SysDbmsChartDimension info, Map<String, Object> map, String tableName) {
	StringBuilder sql = new StringBuilder();
	Map<String, Object> param = new HashMap<>();
	sql.append("SELECT  " + type1 + " AS ask,COUNT(1) AS num FROM " + tableName + " t " + " WHERE " + type1 + " IS NOT NULL " + " AND " + type1 + "  <>'' " + sbWhere.toString() + " " + " GROUP BY " + type1 + " " + "ORDER BY " + type1 + " ");
	NamedParameterJdbcTemplate template2 = new NamedParameterJdbcTemplate(jdbcTemplate);
	List<Map<String, Object>> listMap2 = template2.queryForList(sql.toString(), param);

	List<Map<String, Object>> series_data = new ArrayList<>();
	List<String> legend_data = new ArrayList<>();
	legend_data.add("数量");
	Map<String, Object> sdata = new HashMap<>();
	sdata.put("type", "tbar".equals(info.getChartType()) ? "bar" : info.getChartType());
	sdata.put("name", "数量");
	List<Integer> series_data_data = new ArrayList<>();
	List<String> xAxis_data = new ArrayList<>();
	for (Map<String, Object> map2 : listMap2) {
		series_data_data.add(Integer.valueOf(map2.get("num").toString()));
		xAxis_data.add(map2.get("ask").toString());
	}
	sdata.put("data", series_data_data);
	series_data.add(sdata);
	map.put("series_data", series_data);
	map.put("xAxis_data", xAxis_data);
	map.put("legend_data", legend_data);
	map.put("chartType", info.getChartType());
}
 
源代码13 项目: openemm   文件: ComRecipientDaoImpl.java
@Override
	public List<CaseInsensitiveMap<String, Object>> getCustomers(List<Integer> customerIDs, int companyID) {
		CaseInsensitiveMap<String, ProfileField> profileMap;
		try {
			profileMap = loadCustDBProfileStructure(companyID);
		} catch (Exception e) {
			logger.error("getCustomers: Exception in getQueryProperties", e);
			return Collections.emptyList();
		}

		String query = "SELECT * FROM " + getCustomerTableName(companyID) + " WHERE customer_id IN(:ids) AND " + ComCompanyDaoImpl.STANDARD_FIELD_BOUNCELOAD + " = 0";
		MapSqlParameterSource parameters = new MapSqlParameterSource();
		parameters.addValue("ids", customerIDs);

		NamedParameterJdbcTemplate jTmpl = new NamedParameterJdbcTemplate(getDataSource());
		List<Map<String, Object>> queryResult = jTmpl.queryForList(query, parameters);
	
		List<CaseInsensitiveMap<String, Object>> results = new ArrayList<>();
	
		GregorianCalendar calendar = new GregorianCalendar();
	
//		long estimatedTime = System.nanoTime() - startTime;
//		logger.warn("getCustomers: after query before processing " + estimatedTime + "ns");

		for (Map<String, Object> row : queryResult) {
			CaseInsensitiveMap<String, Object> params = new CaseInsensitiveMap<>();
		
			for (Entry<String, ProfileField> entry : profileMap.entrySet()) {
				String columnName = entry.getKey();
				String columnType = entry.getValue().getDataType();
				Object value = row.get(columnName);
				if ("DATE".equalsIgnoreCase(columnType)) {
					if (value == null) {
						Map<String, String> dateColumnEmptyValues = SUPPLEMENTAL_DATE_COLUMN_SUFFIXES.stream()
								.map(suffix -> columnName + suffix)
								.collect(Collectors.toMap(Function.identity(), pair -> ""));
						dateColumnEmptyValues.put(columnName, "");

						params.putAll(dateColumnEmptyValues);
					} else {
						calendar.setTime((Date) value);
						params.put(columnName + ComRecipientDao.SUPPLEMENTAL_DATECOLUMN_SUFFIX_DAY, Integer.toString(calendar.get(GregorianCalendar.DAY_OF_MONTH)));
						params.put(columnName + ComRecipientDao.SUPPLEMENTAL_DATECOLUMN_SUFFIX_MONTH, Integer.toString(calendar.get(GregorianCalendar.MONTH) + 1));
						params.put(columnName + ComRecipientDao.SUPPLEMENTAL_DATECOLUMN_SUFFIX_YEAR, Integer.toString(calendar.get(GregorianCalendar.YEAR)));
						params.put(columnName + ComRecipientDao.SUPPLEMENTAL_DATECOLUMN_SUFFIX_HOUR, Integer.toString(calendar.get(GregorianCalendar.HOUR_OF_DAY)));
						params.put(columnName + ComRecipientDao.SUPPLEMENTAL_DATECOLUMN_SUFFIX_MINUTE, Integer.toString(calendar.get(GregorianCalendar.MINUTE)));
						params.put(columnName + ComRecipientDao.SUPPLEMENTAL_DATECOLUMN_SUFFIX_SECOND, Integer.toString(calendar.get(GregorianCalendar.SECOND)));
						params.put(columnName, new SimpleDateFormat(DateUtilities.YYYY_MM_DD_HH_MM_SS).format(calendar.getTime()));
					}
				} else {
					if (value == null) {
						value = "";
					}
					params.put(columnName, value.toString());
				}
			}
		
			results.add(params);
		}
	
//		estimatedTime = System.nanoTime() - startTime;
//		logger.warn("getCustomers: after processing " + estimatedTime + "ns");
		
		return results;
	}
 
/**
 * @param tableName
 * 方法名: buildMapNoType
 * 功 能: TODO(这里用一句话描述这个方法的作用)
 * 参 数: @param map
 * 参 数: @param info
 * 参 数: @param sbWhere
 * 返 回: void
 * 作 者 : Administrator
 * @throws
 */
private void buildMapNoType(Map<String, Object> map, SysDbmsChartDimension info, StringBuilder sbWhere, String tableName) {
	StringBuilder sql = new StringBuilder();
	Map<String, Object> param = new HashMap<>();
	
	sql.append(" select  行政区域_省 as province ,count(1) as num");
	sql.append(" from " + tableName + " t ");
	sql.append(" where 1=1 ");
	sql.append(" and  行政区域_省  is not null ");
	sql.append(" and  行政区域_省 <> ''  ");
	sql.append(sbWhere.toString());
	sql.append(" group by  行政区域_省 ");
	
	NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(jdbcTemplate);
	List<Map<String, Object>> listMap = template.queryForList(sql.toString(), param);
	// series_data=[{name:'安徽',value:5483043}, ];
	List<Map<String, Object>> series_data = new ArrayList<>();
	Map<String, Object> mapt = new HashMap<>();
	mapt.put("name", "数量");
	mapt.put("type", "map");
	mapt.put("mapType", "china");
	mapt.put("roam", false);
	
	Map<String, Boolean> emap = new HashMap<>();
	Map<String, Object> label = new HashMap<>();
	emap.put("show", true);
	label.put("emphasis", emap);
	label.put("normal", emap);
	mapt.put("label", label);

	List<Map<String, Object>> series_data_data = new ArrayList<>();
	for (Map<String, Object> map2 : listMap) {
		Map<String, Object> data = new HashMap<>();
		data.put("name", map2.get("province").toString());
		data.put("value", Integer.valueOf(map2.get("num").toString()));
		series_data_data.add(data);
	}
	mapt.put("data", series_data_data);
	series_data.add(mapt);
	
	map.put("series_data", series_data);
	String[] legend_data = { "数量" };
	map.put("legend_data", legend_data);
	map.put("chartType", info.getChartType());
}
 
/**
 * @param tableName
 * @方法名 buildMapNoTypeSum
 * @功能 TODO(这里用一句话描述这个方法的作用)
 * @参数 @param map
 * @参数 @param info
 * @参数 @param sbWhere
 * @返回 void
 * @author Administrator
 * @throws
 */
private void buildMapNoTypeSum(Map<String, Object> map, SysDbmsChartDimension info, StringBuilder sbWhere, String tableName) {
	StringBuilder sql = new StringBuilder();
	Map<String, Object> param = new HashMap<>();

	sql.append(" SELECT  行政区域_省 AS PROVINCE ,SUM(`总中标金额`) AS NUM");
	sql.append(" FROM " + tableName + " t ");
	sql.append(" WHERE  DELETE_FLAG = 0  ");
	sql.append(" AND  公告类型  IN ('中标公告','成交公告') ");
	sql.append(" AND  行政区域_省  IS NOT NULL ");
	sql.append(" AND  行政区域_省 <> ''  ");
	sql.append(sbWhere.toString());
	sql.append(" GROUP BY  行政区域_省 ");

	NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(jdbcTemplate);
	List<Map<String, Object>> listMap = template.queryForList(sql.toString(), param);
	// series_data=[{name:'安徽',value:5483043}, ];
	List<Map<String, Object>> series_data = new ArrayList<>();
	Map<String, Object> mapt = new HashMap<>();
	mapt.put("name", "金额");
	mapt.put("type", "map");
	mapt.put("mapType", "china");
	mapt.put("roam", false);

	Map<String, Boolean> emap = new HashMap<>();
	Map<String, Object> label = new HashMap<>();
	emap.put("show", true);
	label.put("emphasis", emap);
	Map<String, Boolean> normal = new HashMap<>();
	normal.put("show", false);
	label.put("normal", normal);
	mapt.put("label", label);
	
	List<Map<String, Object>> series_data_data = new ArrayList<>();
	for (Map<String, Object> map2 : listMap) {
		Map<String, Object> data = new HashMap<>();
		data.put("name", map2.get("PROVINCE").toString());
		data.put("value", Double.valueOf(map2.get("NUM") == null ? "0" : map2.get("NUM").toString()).longValue());
		series_data_data.add(data);
	}
	mapt.put("data", series_data_data);
	series_data.add(mapt);

	map.put("series_data", series_data);
	String[] legend_data = { "金额" };
	map.put("legend_data", legend_data);
	map.put("chartType", info.getChartType());
	
}
 
/**
 * @param tableName
 * 方法名: buildBarOrLineType3
 * 功 能: TODO(这里用一句话描述这个方法的作用)
 * 参 数: @param sbWhere
 * 参 数: @param type1
 * 参 数: @param type2
 * 参 数: @param type3
 * 参 数: @param info
 * 参 数: @param map
 * 返 回: void
 * 作 者 : Administrator
 * @throws
 */
private void buildBarOrLineType3(StringBuilder sbWhere, String type1, String type2, String type3, SysDbmsChartDimension info, Map<String, Object> map, String tableName) {
	StringBuilder sql = new StringBuilder();
	Map<String, Object> param = new HashMap<>();
	List<Map<String, Object>> series_data = new ArrayList<>();
	sql.append("SELECT  " + type1 + " AS ask1," + type2 + " AS ask2," + type3 + " AS ask3,COUNT(1) AS num FROM " + tableName + " t " + " WHERE " + type1 + " IS NOT NULL " + " AND " + type1 + "  <>'' " + " AND " + type2 + " IS NOT NULL " + " AND " + type2 + "  <>'' " + " AND " + type3 + " IS NOT NULL " + " AND " + type3 + "  <>'' " + sbWhere.toString() + " " + " GROUP BY " + type1 + ", " + type2 + ", " + type3 + " " + "ORDER BY " + type1 + " ," + type2 + ", " + type3 + " ");
	List<String> legend_data = new ArrayList<>();
	
	NamedParameterJdbcTemplate template2 = new NamedParameterJdbcTemplate(jdbcTemplate);
	List<Map<String, Object>> listMap2 = template2.queryForList(sql.toString(), param);
	List<String> xAxis_data = new ArrayList<>();
	// 分组
	List<List<Map<String, Object>>> gLists = new ArrayList<>();
	buildGroupList(gLists, listMap2, xAxis_data);
	
	for (List<Map<String, Object>> list : gLists) {
		List<List<Map<String, Object>>> gLists2 = new ArrayList<>();
		buildGroupList2(gLists2, list);
		for (List<Map<String, Object>> list2 : gLists2) {
			
			Map<String, Object> sdata = new HashMap<>();
			sdata.put("type", "tbar".equals(info.getChartType()) ? "bar" : info.getChartType());
			sdata.put("name", list2.get(0).get("ask2").toString() + "." + list2.get(0).get("ask3").toString());
			sdata.put("stack", list2.get(0).get("ask2").toString());
			if (!legend_data.contains(list2.get(0).get("ask2").toString() + "." + list2.get(0).get("ask3").toString())) {
				legend_data.add(list2.get(0).get("ask2").toString() + "." + list2.get(0).get("ask3").toString());
			}
			List<Integer> series_data_data = new ArrayList<>();
			for (String string : xAxis_data) {
				boolean check = true;
				for (Map<String, Object> map2 : list2) {
					if (map2.get("ask1").toString().equals(string)) {
						series_data_data.add(Integer.valueOf(map2.get("num").toString()));
						check = false;
						break;
					}
				}
				if (check) {
					series_data_data.add(Integer.valueOf(0));
				}
			}
			sdata.put("data", series_data_data);
			series_data.add(sdata);
		}
		
	}
	map.put("series_data", series_data);
	map.put("xAxis_data", xAxis_data);
	map.put("legend_data", legend_data);
	map.put("chartType", info.getChartType());

}
 
源代码17 项目: danyuan-application   文件: ZhcxAdviceService.java
/**
	 * @方法名 startConfixMysqlTableColumnsConfig
	 * @功能 TODO(这里用一句话描述这个方法的作用)
	 * @参数 @param sysZhcxTab
	 * @参数 @param multiDatasource
	 * @参数 @param sysDbmsAdviMessInfoDao
	 * @参数 @param jdbcTemplate
	 * @参数 @param colList
	 * @返回 void
	 * @author Administrator
	 * @throws
	 */
	public static void startConfixMysqlTableColumnsConfig(SysDbmsTabsInfo sysZhcxTab, Map<String, DataSource> multiDatasource, SysDbmsAdviMessInfoDao sysDbmsAdviMessInfoDao, JdbcTemplate jdbcTemplate2, List<SysDbmsTabsColsInfo> colList) {
		// 列配置比较建议修正,平台隐藏,实际长度修改(列修改,列配置修改,列统计信息)
		// 列信息处理会有多个同时执行,遮里配置和列的注释都有可能为空,需要对比
		// 统计信息包含陪的实际最大长度 给出建议缩小列的长度类型, 列空值比例,当空超过60% 给出建议平台默认不展示
		// 实际长度暂不处理
		NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(multiDatasource.get(sysZhcxTab.getJdbcUuid()));
		String tableName = sysZhcxTab.getTabsName();
		SysDbmsAdviMessInfo advice = null;
		for (SysDbmsTabsColsInfo sysZhcxCol : colList) {
			StringBuffer sBuffer = new StringBuffer();
			sBuffer.append(" SELECT tc.TABLE_SCHEMA AS OWNER,tc.TABLE_NAME AS TABLE_NAME,tc.COLUMN_NAME AS COLUMN_NAME,tc.COLUMN_COMMENT AS  comments, tc.COLUMN_TYPE AS DATA_TYPE,tc.COLUMN_KEY FROM information_schema.COLUMNS tc ");
			sBuffer.append(" where concat(tc.TABLE_SCHEMA,'.',tc.TABLE_NAME) = :tablename");
			sBuffer.append(" and tc.COLUMN_NAME = :colName");
			Map<String, String> map = new HashMap<>();
			map.put("tablename", tableName);
			map.put("colName", sysZhcxCol.getColsName());
			List<Map<String, Object>> resultlist = template.queryForList(sBuffer.toString(), map);
			if (resultlist != null && resultlist.size() > 0) {
				Map<String, Object> resultmap = resultlist.get(0);
				// 配置列类型
				if (!resultmap.get("DATA_TYPE").toString().contains((sysZhcxCol.getColsType().toUpperCase()))) {
					advice = new SysDbmsAdviMessInfo(UUID.randomUUID().toString(), "列配置修改", sysZhcxTab.getTabsDesc(), sysZhcxTab.getTabsName(), sysZhcxTab.getJdbcUuid());
					String executeSql = "update sys_dbms_tabs_cols_info t set  t.cols_type = '" + resultmap.get("DATA_TYPE") + "',t.update_time = current_timestamp() where t.uuid='" + sysZhcxCol.getUuid() + "'";
					advice.setExecuteSql(executeSql + ";");
					jdbcTemplate2.execute(executeSql);
					advice.setDeleteFlag(1);
					sysDbmsAdviMessInfoDao.save(advice);
				}
				// 配置列展示
//				if (sysZhcxTab.getTabsRows() != null && sysZhcxTab.getTabsRows() > 10000) {
//					BigDecimal numNulls = (BigDecimal) resultmap.get("NUM_NULLS");
//					if (numNulls != null && numNulls.intValue() != 0) {
//						if (numNulls.subtract(new BigDecimal(sysZhcxTab.getTabsRows()).multiply(new BigDecimal(0.6f))).intValue() > 0 && 1 == sysZhcxCol.getPageList().intValue()) {
//							advice = new SysDbmsAdviMessInfo(UUID.randomUUID().toString(), "列配置修改", sysZhcxTab.getTabsDesc(), tableName, sysZhcxTab.getJdbcUuid());
//							StringBuilder sBuilder = new StringBuilder();
//							sBuilder.append("-- 表中的空值超过 60% 建议默认列表不展示");
//							advice = new SysDbmsAdviMessInfo(UUID.randomUUID().toString(), "列配置修改", sysZhcxTab.getTabsDesc(), sysZhcx4Tab.getTabsName(), sysZhcxTab.getJdbcUuid());
//							sBuilder.append("update sys_dbms_tabs_cols_info t set  t.PAGE_LIST = '0',t.update_time = sysdate where t.uuid='" + sysZhcxCol.getUuid() + "'");
//							advice.setMessage(sBuilder.toString() + ";");
//							advice.setDeleteFlag(0);
//							sysDbmsAdviMessInfoDao.save(advice);
//						}
//					}
//				}
				// 注释和翻译
				if (sysZhcxCol.getColsDesc() != null && resultmap.get("comments") != null) {
					StringBuilder sBuilder = new StringBuilder();
					advice = new SysDbmsAdviMessInfo(UUID.randomUUID().toString(), "列配置修改", sysZhcxTab.getTabsDesc(), sysZhcxTab.getTabsName(), sysZhcxTab.getJdbcUuid());
					if (sysZhcxTab.getTabsDesc() == null || "".equals(sysZhcxTab.getTabsDesc())) {
						sBuilder.append("-- 由于配置中的信息没有,建议执行以下语句进行统一:\n");
						sBuilder.append("update sys_dbms_tabs_cols_info t set t.COLS_DESC ='" + resultmap.get("comments") + "' ,t.update_time = sysdate where t.uuid='" + sysZhcxCol.getUuid() + "'; \n");
					} else if (resultmap.get("comments") == null || "".equals(resultmap.get("comments"))) {
						sBuilder.append("-- 由于表中字段注释信息没有,建议执行以下语句进行统一:\n");
						sBuilder.append("alter table " + tableName + "  modify column " + sysZhcxCol.getColsName() + " VARCHAR(500) comment '" + sysZhcxCol.getColsDesc() + "';\n");
					} else if (!sysZhcxCol.getColsDesc().equals(resultmap.get("comments"))) {
						sBuilder.append("-- 由于表中字段注释信息和配置中的信息不一致,建议执行以下语句进行统一:\n");
						sBuilder.append("-- 建议 一 根据表信息 更新配置表中的信息.\n");
						sBuilder.append("--  update sys_dbms_tabs_cols_info t set t.COLS_DESC ='" + resultmap.get("comments") + "' ,t.update_time = sysdate where t.uuid='" + sysZhcxCol.getUuid() + "'; \n");
						sBuilder.append("-- 建议 二 根据配置表中的信息更新表信息 .\n");
						sBuilder.append("alter table  " + tableName + " modify column " + sysZhcxCol.getColsName() + " VARCHAR(500) comment '" + sysZhcxCol.getColsDesc() + "';\n");
					} else {
						return;
					}
					
					advice.setMessage(sBuilder.toString());
					advice.setDeleteFlag(0);
					sysDbmsAdviMessInfoDao.save(advice);
				}
				// 列数据统计建议添加索引,平台隐藏,实际长度修改(索引修改或重建,索引添加,)
				startConfixMysqlTableCloumnIndexConfig(sysZhcxTab, sysZhcxCol, resultlist, sysDbmsAdviMessInfoDao);
			}

		}
		
	}
 
/**
 * @param tableName
 * @方法名 buildBarOrLineType3Sum
 * @功能 TODO(这里用一句话描述这个方法的作用)
 * @参数 @param sbWhere
 * @参数 @param type1
 * @参数 @param type2
 * @参数 @param type3
 * @参数 @param info
 * @参数 @param map
 * @返回 void
 * @author Administrator
 * @throws
 */
private void buildBarOrLineType3Sum(StringBuilder sbWhere, String type1, String type2, String type3, SysDbmsChartDimension info, Map<String, Object> map, String tableName) {
	StringBuilder sql = new StringBuilder();
	Map<String, Object> param = new HashMap<>();
	List<Map<String, Object>> series_data = new ArrayList<>();
	sql.append(" SELECT  " + type1 + " AS ASK1," + type2 + " AS ASK2," + type3 + " AS ASK3,SUM(`总中标金额`) AS NUM ");
	sql.append(" FROM " + tableName + " t ");
	sql.append(" WHERE  DELETE_FLAG = 0  ");
	sql.append(" AND  公告类型  IN ('中标公告','成交公告') ");
	sql.append(" AND " + type1 + " IS NOT NULL ");
	sql.append(" AND " + type1 + "  <>'' ");
	sql.append(" AND " + type2 + " IS NOT NULL ");
	sql.append(" AND " + type2 + "  <>'' ");
	sql.append(" AND " + type3 + " IS NOT NULL ");
	sql.append(" AND " + type3 + "  <>'' ");
	sql.append(sbWhere.toString() + " ");
	sql.append(" GROUP BY " + type1 + ", " + type2 + ", " + type3 + " ");
	sql.append("ORDER BY " + type1 + " ," + type2 + ", " + type3 + " ");
	List<String> legend_data = new ArrayList<>();
	
	NamedParameterJdbcTemplate template2 = new NamedParameterJdbcTemplate(jdbcTemplate);
	List<Map<String, Object>> listMap2 = template2.queryForList(sql.toString(), param);
	List<String> xAxis_data = new ArrayList<>();
	// 分组
	List<List<Map<String, Object>>> gLists = new ArrayList<>();
	buildGroupList(gLists, listMap2, xAxis_data);
	
	for (List<Map<String, Object>> list : gLists) {
		List<List<Map<String, Object>>> gLists2 = new ArrayList<>();
		buildGroupList2(gLists2, list);
		for (List<Map<String, Object>> list2 : gLists2) {
			
			Map<String, Object> sdata = new HashMap<>();
			sdata.put("type", "tbar".equals(info.getChartType()) ? "bar" : info.getChartType());
			sdata.put("name", list2.get(0).get("ASK2").toString() + "." + list2.get(0).get("ASK3").toString());
			sdata.put("stack", list2.get(0).get("ASK2").toString());
			if (!legend_data.contains(list2.get(0).get("ASK2").toString() + "." + list2.get(0).get("ASK3").toString())) {
				legend_data.add(list2.get(0).get("ASK2").toString() + "." + list2.get(0).get("ASK3").toString());
			}
			List<Long> series_data_data = new ArrayList<>();
			for (String string : xAxis_data) {
				boolean check = true;
				for (Map<String, Object> map2 : list2) {
					if (map2.get("ASK1").toString().equals(string)) {
						series_data_data.add(Double.valueOf(map2.get("NUM") == null ? "0" : map2.get("NUM").toString()).longValue());
						check = false;
						break;
					}
				}
				if (check) {
					series_data_data.add(Long.valueOf(0));
				}
			}
			sdata.put("data", series_data_data);
			series_data.add(sdata);
		}
		
	}
	map.put("series_data", series_data);
	map.put("xAxis_data", xAxis_data);
	map.put("legend_data", legend_data);
	map.put("chartType", info.getChartType());
	
}
 
/**
 * @param tableName
 * @方法名 buildBarOrLineType2Sum
 * @功能 TODO(这里用一句话描述这个方法的作用)
 * @参数 @param sbWhere
 * @参数 @param type1
 * @参数 @param type2
 * @参数 @param info
 * @参数 @param map
 * @返回 void
 * @author Administrator
 * @throws
 */
private void buildBarOrLineType2Sum(StringBuilder sbWhere, String type1, String type2, SysDbmsChartDimension info, Map<String, Object> map, String tableName) {
	StringBuilder sql = new StringBuilder();
	Map<String, Object> param = new HashMap<>();
	List<Map<String, Object>> series_data = new ArrayList<>();
	sql.append(" SELECT  " + type1 + " AS ASK1," + type2 + " AS ASK2,SUM(`总中标金额`) AS NUM ");
	sql.append(" FROM " + tableName + " t ");
	sql.append(" WHERE  DELETE_FLAG = 0  ");
	sql.append(" AND  公告类型  IN ('中标公告','成交公告') ");
	sql.append(" AND " + type1 + " IS NOT NULL ");
	sql.append(" AND " + type1 + "  <>'' ");
	sql.append(" AND " + type2 + " IS NOT NULL ");
	sql.append(" AND " + type2 + "  <>'' ");
	sql.append(sbWhere.toString() + " ");
	sql.append(" GROUP BY " + type1 + ", " + type2 + " ");
	sql.append("ORDER BY " + type1 + " ," + type2 + " ");
	List<String> legend_data = new ArrayList<>();
	
	NamedParameterJdbcTemplate template2 = new NamedParameterJdbcTemplate(jdbcTemplate);
	List<Map<String, Object>> listMap2 = template2.queryForList(sql.toString(), param);
	List<String> xAxis_data = new ArrayList<>();
	// 分组
	List<List<Map<String, Object>>> gLists = new ArrayList<>();
	buildGroupList(gLists, listMap2, xAxis_data);
	for (List<Map<String, Object>> list : gLists) {
		Map<String, Object> sdata = new HashMap<>();
		sdata.put("type", "tbar".equals(info.getChartType()) ? "bar" : info.getChartType());
		sdata.put("name", list.get(0).get("ASK2").toString());
		if (!legend_data.contains(list.get(0).get("ASK2").toString())) {
			legend_data.add(list.get(0).get("ASK2").toString());
		}
		List<Long> series_data_data = new ArrayList<>();
		for (String string : xAxis_data) {
			boolean check = true;
			for (Map<String, Object> map2 : list) {
				if (map2.get("ASK1").toString().equals(string)) {
					series_data_data.add(Double.valueOf(map2.get("NUM") == null ? "0" : map2.get("NUM").toString()).longValue());
					check = false;
					break;
				}
			}
			if (check) {
				series_data_data.add(Long.valueOf(0));
			}
		}
		sdata.put("data", series_data_data);
		series_data.add(sdata);
	}

	map.put("series_data", series_data);
	map.put("xAxis_data", xAxis_data);
	map.put("legend_data", legend_data);
	map.put("chartType", info.getChartType());
	
}
 
源代码20 项目: ureport   文件: DatasourceServletAction.java
public void previewData(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	String sql=req.getParameter("sql");
	String parameters=req.getParameter("parameters");
	Map<String, Object> map = buildParameters(parameters);
	sql=parseSql(sql, map);
	Connection conn=null;
	try{
		conn=buildConnection(req);
		List<Map<String,Object>> list=null;
		if(ProcedureUtils.isProcedure(sql)){
			list=ProcedureUtils.procedureQuery(sql, map, conn);
		}else{
			DataSource dataSource=new SingleConnectionDataSource(conn,false);
			NamedParameterJdbcTemplate jdbc=new NamedParameterJdbcTemplate(dataSource);
			list=jdbc.queryForList(sql, map);				
		}
		int size=list.size();
		int currentTotal=size;
		if(currentTotal>500){
			currentTotal=500;
		}
		List<Map<String,Object>> ls=new ArrayList<Map<String,Object>>();
		for(int i=0;i<currentTotal;i++){
			ls.add(list.get(i));
		}
		DataResult result=new DataResult();
		List<String> fields=new ArrayList<String>();
		if(size>0){
			Map<String,Object> item=list.get(0);
			for(String name:item.keySet()){
				fields.add(name);
			}
		}
		result.setFields(fields);
		result.setCurrentTotal(currentTotal);
		result.setData(ls);
		result.setTotal(size);
		writeObjectToJson(resp, result);
	}catch(Exception ex){
		throw new ServletException(ex);
	}finally{
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}