public BaseJdbcClient(JdbcConnectorId connectorId, BaseJdbcConfig config, String identifierQuote, ConnectionFactory connectionFactory) { this.connectorId = requireNonNull(connectorId, "connectorId is null").toString(); requireNonNull(config, "config is null"); // currently unused, retained as parameter for future extensions this.identifierQuote = requireNonNull(identifierQuote, "identifierQuote is null"); this.connectionFactory = requireNonNull(connectionFactory, "connectionFactory is null"); }
@Override public void configure(Binder binder) { newOptionalBinder(binder, ConnectorAccessControl.class); newSetBinder(binder, Procedure.class); binder.bind(JdbcConnectorId.class).toInstance(new JdbcConnectorId(connectorId)); binder.bind(JdbcMetadataFactory.class).in(Scopes.SINGLETON); binder.bind(JdbcSplitManager.class).in(Scopes.SINGLETON); binder.bind(JdbcRecordSetProvider.class).in(Scopes.SINGLETON); binder.bind(JdbcPageSinkProvider.class).in(Scopes.SINGLETON); binder.bind(JdbcConnector.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(JdbcMetadataConfig.class); } }
public BaseJdbcClient(JdbcConnectorId connectorId, BaseJdbcConfig config, String identifierQuote, Driver driver) { this.connectorId = requireNonNull(connectorId, "connectorId is null").toString(); this.identifierQuote = requireNonNull(identifierQuote, "identifierQuote is null"); this.driver = requireNonNull(driver, "driver is null"); requireNonNull(config, "config is null"); connectionUrl = config.getConnectionUrl(); connectionProperties = new Properties(); if (config.getConnectionUser() != null) { connectionProperties.setProperty("user", config.getConnectionUser()); } if (config.getConnectionPassword() != null) { connectionProperties.setProperty("password", config.getConnectionPassword()); } }
public TestingDatabase() throws SQLException { String connectionUrl = "jdbc:h2:mem:test" + System.nanoTime(); jdbcClient = new BaseJdbcClient( new JdbcConnectorId(CONNECTOR_ID), new BaseJdbcConfig(), "\"", new DriverConnectionFactory(new Driver(), connectionUrl, new Properties())); connection = DriverManager.getConnection(connectionUrl); connection.createStatement().execute("CREATE SCHEMA example"); connection.createStatement().execute("CREATE TABLE example.numbers(text varchar primary key, text_short varchar(32), value bigint)"); connection.createStatement().execute("INSERT INTO example.numbers(text, text_short, value) VALUES " + "('one', 'one', 1)," + "('two', 'two', 2)," + "('three', 'three', 3)," + "('ten', 'ten', 10)," + "('eleven', 'eleven', 11)," + "('twelve', 'twelve', 12)" + ""); connection.createStatement().execute("CREATE TABLE example.view_source(id varchar primary key)"); connection.createStatement().execute("CREATE VIEW example.view AS SELECT id FROM example.view_source"); connection.createStatement().execute("CREATE SCHEMA tpch"); connection.createStatement().execute("CREATE TABLE tpch.orders(orderkey bigint primary key, custkey bigint)"); connection.createStatement().execute("CREATE TABLE tpch.lineitem(orderkey bigint primary key, partkey bigint)"); connection.createStatement().execute("CREATE SCHEMA exa_ple"); connection.createStatement().execute("CREATE TABLE exa_ple.num_ers(te_t varchar primary key, \"VA%UE\" bigint)"); connection.createStatement().execute("CREATE TABLE exa_ple.table_with_float_col(col1 bigint, col2 double, col3 float, col4 real)"); connection.commit(); }
/** * Constructor. * @param connectorId connector id * @param config config * @throws SQLException SQL exception */ @Inject public MetacatPostgreSqlClient(final JdbcConnectorId connectorId, final BaseJdbcConfig config) throws SQLException { super(connectorId, config, "\"", DataSourceManager.get().getDriver(connectorId.toString(), new Driver())); }
@Override public void configure(Binder binder) { binder.bind(JdbcConnectorId.class).toInstance(new JdbcConnectorId(connectorId)); binder.bind(JdbcMetadata.class).in(Scopes.SINGLETON); binder.bind(JdbcSplitManager.class).in(Scopes.SINGLETON); binder.bind(JdbcRecordSetProvider.class).in(Scopes.SINGLETON); binder.bind(JdbcRecordSinkProvider.class).in(Scopes.SINGLETON); binder.bind(JdbcConnector.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(JdbcMetadataConfig.class); } }
/** * Constructor. * @param connectorId connector id * @param config config * @param mySqlConfig mysql config * @throws SQLException SQL exception */ @Inject public MetacatMySqlClient(final JdbcConnectorId connectorId, final BaseJdbcConfig config, final MySqlConfig mySqlConfig) throws SQLException { super(connectorId, config, "`", DataSourceManager.get().getDriver(connectorId.toString(), new Driver())); connectionProperties.setProperty("nullCatalogMeansCurrent", "false"); if (mySqlConfig.isAutoReconnect()) { connectionProperties.setProperty("autoReconnect", String.valueOf(mySqlConfig.isAutoReconnect())); connectionProperties.setProperty("maxReconnects", String.valueOf(mySqlConfig.getMaxReconnects())); } if (mySqlConfig.getConnectionTimeout() != null) { connectionProperties .setProperty("connectTimeout", String.valueOf(mySqlConfig.getConnectionTimeout().toMillis())); } }
public TestingDatabase() throws SQLException { String connectionUrl = "jdbc:h2:mem:test" + System.nanoTime(); jdbcClient = new BaseJdbcClient( new JdbcConnectorId(CONNECTOR_ID), new BaseJdbcConfig(), "\"", new DriverConnectionFactory(new Driver(), connectionUrl, new Properties())); connection = DriverManager.getConnection(connectionUrl); connection.createStatement().execute("CREATE SCHEMA example"); connection.createStatement().execute("CREATE TABLE example.numbers(text varchar primary key, text_short varchar(32), value bigint)"); connection.createStatement().execute("INSERT INTO example.numbers(text, text_short, value) VALUES " + "('one', 'one', 1)," + "('two', 'two', 2)," + "('three', 'three', 3)," + "('ten', 'ten', 10)," + "('eleven', 'eleven', 11)," + "('twelve', 'twelve', 12)" + ""); connection.createStatement().execute("CREATE TABLE example.view_source(id varchar primary key)"); connection.createStatement().execute("CREATE VIEW example.view AS SELECT id FROM example.view_source"); connection.createStatement().execute("CREATE SCHEMA tpch"); connection.createStatement().execute("CREATE TABLE tpch.orders(orderkey bigint primary key, custkey bigint)"); connection.createStatement().execute("CREATE TABLE tpch.lineitem(orderkey bigint primary key, partkey bigint)"); connection.createStatement().execute("CREATE SCHEMA exa_ple"); connection.createStatement().execute("CREATE TABLE exa_ple.num_ers(te_t varchar primary key, \"VA%UE\" bigint)"); connection.createStatement().execute("CREATE TABLE exa_ple.table_with_float_col(col1 bigint, col2 double, col3 float, col4 real)"); connection.commit(); }