/*
* Copyright (c) 2011-2014 The original author or authors
* ------------------------------------------------------
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Apache License v2.0 is available at
* http://www.opensource.org/licenses/apache2.0.php
*
* You may elect to redistribute this code under either of these licenses.
*/
package io.vertx.jdbcclient;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.Vertx;
import io.vertx.core.impl.ContextInternal;
import io.vertx.core.json.JsonObject;
import io.vertx.core.tracing.TracingPolicy;
import io.vertx.ext.jdbc.impl.JDBCClientImpl;
import io.vertx.jdbcclient.impl.AgroalCPDataSourceProvider;
import io.vertx.jdbcclient.impl.JDBCPoolImpl;
import io.vertx.sqlclient.*;
import io.vertx.sqlclient.impl.tracing.QueryTracer;
import java.util.UUID;
JDBCPool is the interface that allows using the Sql Client API with plain JDBC.
/**
* JDBCPool is the interface that allows using the Sql Client API with plain JDBC.
*/
@VertxGen
public interface JDBCPool extends Pool {
The property to be used to retrieve the generated keys
/**
* The property to be used to retrieve the generated keys
*/
PropertyKind<Row> GENERATED_KEYS = PropertyKind.create("generated-keys", Row.class);
The property to be used to retrieve the output of the callable statement
/**
* The property to be used to retrieve the output of the callable statement
*/
PropertyKind<Boolean> OUTPUT = PropertyKind.create("callable-statement-output", Boolean.class);
Create a JDBC pool which maintains its own data source.
Params: - vertx – the Vert.x instance
- connectOptions – the options to configure the connection
- poolOptions – the connection pool options
Returns: the client
/**
* Create a JDBC pool which maintains its own data source.
*
* @param vertx the Vert.x instance
* @param connectOptions the options to configure the connection
* @param poolOptions the connection pool options
* @return the client
*/
static JDBCPool pool(Vertx vertx, JDBCConnectOptions connectOptions, PoolOptions poolOptions) {
final ContextInternal context = (ContextInternal) vertx.getOrCreateContext();
return new JDBCPoolImpl(
vertx,
new JDBCClientImpl(vertx, new AgroalCPDataSourceProvider(connectOptions, poolOptions)),
context.tracer() == null ?
null :
new QueryTracer(context.tracer(), connectOptions.getTracingPolicy(), connectOptions.getJdbcUrl(), connectOptions.getUser(), connectOptions.getDatabase()));
}
Create a JDBC pool which maintains its own data source.
Params: - vertx – the Vert.x instance
- config – the options to configure the client using the same format as
JDBCClient
Returns: the client
/**
* Create a JDBC pool which maintains its own data source.
*
* @param vertx the Vert.x instance
* @param config the options to configure the client using the same format as {@link io.vertx.ext.jdbc.JDBCClient}
* @return the client
*/
static JDBCPool pool(Vertx vertx, JsonObject config) {
final ContextInternal context = (ContextInternal) vertx.getOrCreateContext();
return new JDBCPoolImpl(
vertx,
new JDBCClientImpl(vertx, config, UUID.randomUUID().toString()),
context.tracer() == null ?
null :
new QueryTracer(context.tracer(), TracingPolicy.PROPAGATE, config.getString("jdbcUrl"), config.getString("user"), config.getString("database")));
}
}