/** * Convenience method for {@code getConfig(SqlStatements.class).setTemplateEngine(rewriter)} * * @param templateEngine the template engine * @return this */ default This setTemplateEngine(TemplateEngine templateEngine) { return configure(SqlStatements.class, c -> c.setTemplateEngine(templateEngine)); }
/** * Obtain the value of an attribute * * @param key the name of the attribute * @return the value of the attribute */ public Object getAttribute(String key) { return getConfig(SqlStatements.class).getAttribute(key); }
/** * Convenience method for {@code getConfig(SqlStatements.class).setSqlParser(rewriter)} * * @param parser SQL parser * @return this */ default This setSqlParser(SqlParser parser) { return configure(SqlStatements.class, c -> c.setSqlParser(parser)); }
.getTemplateEngine() .render(sql, ctx); ctx.setRenderedSql(renderedSql); .getSqlParser() .parse(renderedSql, ctx); String sql = parsedSql.getSql(); getConfig(SqlStatements.class).customize(stmt); } catch (SQLException e) { throw new UnableToCreateStatementException(e, ctx); SqlLoggerUtil.wrap(stmt::execute, ctx, getConfig(SqlStatements.class).getSqlLogger()); } catch (SQLException e) { try {
private void allowUnused() { statements.setUnusedBindingAllowed(true); } }
.getTemplateEngine() .render(getSql(), getContext()); getContext().setRenderedSql(renderedSql); .getSqlParser() .parse(renderedSql, getContext()); String sql = parsedSql.getSql(); final long elapsedTime = System.nanoTime() - start; LOG.trace("Prepared batch of {} parts executed in {}ms", bindings.size(), elapsedTime / 1000000L, parsedSql); getConfig(SqlStatements.class).getTimingCollector().collect(elapsedTime, getContext());
getConfig(SqlStatements.class).customize(stmt); } catch (SQLException e) { throw new UnableToCreateStatementException(e, getContext()); final String sql = getConfig(SqlStatements.class).getTemplateEngine().render(part, getContext()); LOG.trace(" {}", sql); stmt.addBatch(sql); return SqlLoggerUtil.wrap(stmt::executeBatch, getContext(), getConfig(SqlStatements.class).getSqlLogger()); } catch (SQLException e) { throw new UnableToExecuteStatementException(mungeBatchException(e), getContext());
/** * Convenience method for {@code getConfig(SqlStatements.class).setTimingCollector(collector)} * * @deprecated use {@link #setSqlLogger} instead * @param collector timing collector * @return this */ @Deprecated default This setTimingCollector(TimingCollector collector) { return configure(SqlStatements.class, c -> c.setTimingCollector(collector)); }
/** * Locate the Script and split it into statements. * @return the split statements */ public List<String> getStatements() { return splitToStatements(getConfig(SqlStatements.class).getTemplateEngine().render(sql, getContext())); }
/** * Define an attribute for in this context. * * @param key the key for the attribute * @param value the value for the attribute */ public void define(String key, Object value) { getConfig(SqlStatements.class).define(key, value); }
final String sql = getConfig(SqlStatements.class).getTemplateEngine().render(part, getContext()); LOG.trace(" {}", sql); stmt.addBatch(sql); LOG.trace("] executed in {}ms", elapsedTime / 1000000L); getConfig(SqlStatements.class).getTimingCollector().collect(elapsedTime, getContext()); return rs;
private SqlStatements(SqlStatements that) { this.attributes = Collections.synchronizedMap(that.getAttributes()); // already copied this.templateEngine = that.templateEngine; this.sqlParser = that.sqlParser; this.sqlLogger = that.sqlLogger; this.queryTimeout = that.queryTimeout; this.allowUnusedBindings = that.allowUnusedBindings; this.customizers.addAll(that.customizers); }
@Override public SqlStatements createCopy() { return new SqlStatements(this); }
.getTemplateEngine() .render(getSql(), getContext()); getContext().setRenderedSql(renderedSql); .getSqlParser() .parse(renderedSql, getContext()); String sql = parsedSql.getSql(); getConfig(SqlStatements.class).customize(stmt); } catch (SQLException e) { throw new UnableToCreateStatementException(e, getContext()); final int[] rs = SqlLoggerUtil.wrap(stmt::executeBatch, getContext(), getConfig(SqlStatements.class).getSqlLogger());
@Override public SqlStatementCustomizer createForType(Annotation annotation, Class<?> sqlObjectType) { return s -> s.getConfig(SqlStatements.class).setUnusedBindingAllowed(((AllowUnusedBindings) annotation).value()); } }
PreparedStatement internalExecute() .getTemplateEngine() .render(sql, getContext()); getContext().setRenderedSql(renderedSql); .getSqlParser() .parse(renderedSql, getContext()); String sql = parsedSql.getSql(); LOG.trace("Execute SQL \"{}\" in {}ms", sql, elapsedTime / 1000000L); getConfig(SqlStatements.class) .getTimingCollector() .collect(elapsedTime, getContext());
protected Handle openHandle() { tc = new TTC(); dbRule.getJdbi().getConfig(SqlStatements.class).setTimingCollector(tc); return dbRule.getJdbi().open(); }
final TemplateEngine original = jdbi.getConfig(SqlStatements.class).getTemplateEngine(); jdbi.setTemplateEngine(new NamePrependingTemplateEngine(original));
/** * Convenience method for {@code getConfig(SqlStatements.class).define(key, value)} * * @param key attribute name * @param value attribute value * @return this */ default This define(String key, Object value) { return configure(SqlStatements.class, c -> c.define(key, value)); }
/** * Returns the attributes applied in this context. * * @return the defined attributes. */ public Map<String, Object> getAttributes() { return getConfig(SqlStatements.class).getAttributes(); }