/** * Obtain a parsed representation of the given SQL statement. * <p>The default implementation uses an LRU cache with an upper limit * of 256 entries. * @param sql the original SQL * @return a representation of the parsed SQL statement */ protected ExposedParsedSql getParsedSql(String sql) { if (getCacheLimit() <= 0) { return new ExposedParsedSql( NamedParameterUtils.parseSqlStatement(sql) ); } synchronized (this.parsedSqlCache) { ExposedParsedSql parsedSql = this.parsedSqlCache.get(sql); if (parsedSql == null) { parsedSql = new ExposedParsedSql( NamedParameterUtils.parseSqlStatement(sql) ); this.parsedSqlCache.put(sql, parsedSql); } return parsedSql; } }
ParsedSql parsedSql1 = this.getParsedSql(sql).getDelegate(); String sqlToUse1 = NamedParameterUtils.substituteNamedParameters(parsedSql1, paramSource); Object[] params = NamedParameterUtils.buildValueArray(parsedSql1, paramSource, null);