Refine search
@Override public void configure(final Env env, final Config conf, final Binder binder) { Key<DataSource> dskey = Key.get(DataSource.class, Names.named(name)); Supplier<NoSuchElementException> noSuchElement = () -> new NoSuchElementException( "DataSource missing: " + dskey); HikariDataSource ds = (HikariDataSource) env.get(dskey).orElseThrow(noSuchElement); Configuration jooqconf = new DefaultConfiguration(); ConnectionProvider dscp = new DataSourceConnectionProvider(ds); jooqconf.set(JDBCUtils.dialect(env.get(Key.get(String.class, Names.named(name + ".url"))) .orElseThrow(noSuchElement))); jooqconf.set(dscp); jooqconf.set(new DefaultTransactionProvider(dscp)); if (callback != null) { callback.accept(jooqconf, conf); } ServiceKey serviceKey = env.serviceKey(); serviceKey.generate(Configuration.class, name, k -> binder.bind(k).toInstance(jooqconf)); Provider<DSLContext> dsl = () -> DSL.using(jooqconf); serviceKey.generate(DSLContext.class, name, k -> binder.bind(k).toProvider(dsl)); } }
@Override public Configuration derive(Clock newClock) { return delegate.derive(newClock); }
@Override public final DSLContext dsl() { return configuration.dsl(); }
@Override public Company findCompanyUsingSimpleStaticStatement(Integer pid) { Configuration configuration = create.configuration().derive(staticStatementSettings); return DSL.using(configuration) .selectFrom(COMPANY) .where(COMPANY.PID.eq(pid)) .fetchOneInto(Company.class); }
select(aliasedFields(map.values().toArray(EMPTY_FIELD), aliases)) .whereNotExists( selectOne() .from(table) .where(matchByConflictingKeys(configuration, map)) return configuration.dsl() .insertInto(table) .columns(insertMaps.fields()) .select(selectFrom(table(rows).as("t")));
private final QueryPart delegate(Configuration configuration) { switch (configuration.dialect().family()) { case CUBRID: /* [pro] xx xxxx xxxxxxx xx [/pro] */ // There is a bug in CUBRID preventing reuse of "level" in the // predicate http://jira.cubrid.org/browse/ENGINE-119 Field<Integer> level = from.add(level()).sub(one()); return table("({select} {0} {as} {1} {from} {2} {connect by} {level} <= {3})", level, name("generate_series"), new Dual(), to.add(one()).sub(from)); case POSTGRES: default: return table("{generate_series}({0}, {1})", from, to); } }
private String formatted(Query query) { return DSL.using(configuration.derive(newSettings)).renderInlined(query); } });
@Override final Field<BigDecimal> getFunction0(Configuration configuration) { switch (configuration.dialect().family()) { /* [pro] xx xxxx xxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx xxxxxxx xxxx xxxxxxx xx [/pro] */ case FIREBIRD: case SQLITE: return argument.cast(BigDecimal.class).mul(inline(180)).div(pi()); default: return field("{degrees}({0})", SQLDataType.NUMERIC, argument); } } }
ParsingConnection(Configuration configuration) { super(configuration.connectionProvider().acquire()); this.configuration = configuration; this.ctx = DSL.using(configuration); this.parser = ctx.parser(); }
@Override public final void formatInsert(Writer writer, Table<?> table, Field<?>... f) { DSLContext ctx = configuration.dsl(); try { for (R record : this) { if (table == null) if (record instanceof TableRecord) table = ((TableRecord<?>) record).getTable(); else table = table(name("UNKNOWN_TABLE")); writer.append(ctx.renderInlined(insertInto(table, f).values(record.intoArray()))) .append(";\n"); } writer.flush(); } catch (java.io.IOException e) { throw new IOException("Exception while writing INSERTs", e); } }
@Override final Field<T> getFunction0(Configuration configuration) { switch (configuration.dialect().family()) { // evaluate "ceil" if unavailable case SQLITE: return DSL.round(argument.add(0.499999999999999)); case H2: return DSL.field("{ceiling}({0})", getDataType(), argument); default: return DSL.field("{ceil}({0})", getDataType(), argument); } } }
@Override final Field<T> getFunction0(Configuration configuration) { switch (configuration.dialect().family()) { /* [pro] xx xxxx xxxxxxx xxxx xxxxxxx xx [/pro] */ case H2: case HSQLDB: return field("{nvl2}({0}, {1}, {2})", getDataType(), arg1, arg2, arg3); default: return DSL.decode().when(arg1.isNotNull(), arg2).otherwise(arg3); } } }
@Override public Configuration set(DataSource newDataSource) { return delegate.set(newDataSource); }