Example usage for org.apache.commons.dbcp2 BasicDataSource getConnection

List of usage examples for org.apache.commons.dbcp2 BasicDataSource getConnection

Introduction

In this page you can find the example usage for org.apache.commons.dbcp2 BasicDataSource getConnection.

Prototype

@Override
public Connection getConnection() throws SQLException 

Source Link

Document

Create (if necessary) and return a connection to the database.

Usage

From source file:eu.peppol.persistence.jdbc.OxalisDataSourceFactoryDbcpImplTest.java

@Test
public void testBasicDataSource() throws Exception {

    String jdbcDriverClassPath = globalConfiguration.getJdbcDriverClassPath();
    URLClassLoader urlClassLoader = new URLClassLoader(new URL[] { new URL(jdbcDriverClassPath) },
            Thread.currentThread().getContextClassLoader());

    BasicDataSource basicDataSource = new BasicDataSource();
    basicDataSource.setDriverClassName(globalConfiguration.getJdbcDriverClassName());
    basicDataSource.setUrl(globalConfiguration.getJdbcConnectionURI());
    basicDataSource.setUsername(globalConfiguration.getJdbcUsername());
    basicDataSource.setPassword(globalConfiguration.getJdbcPassword());

    // Does not work in 1.4, fixed in 1.4.1
    basicDataSource.setDriverClassLoader(urlClassLoader);

    try {/*w ww.  j  a v a 2  s .co m*/
        Connection connection = basicDataSource.getConnection();
        assertNotNull(connection);
    } catch (SQLException e) {
        // As expected when using DBCP 1.4
    }
}

From source file:at.rocworks.oa4j.logger.dbs.NoSQLJDBC.java

private void initStorage(BasicDataSource dataSource, int threads) {
    JDebug.out.info("jdbc init storage...");

    dataSource.setDriverClassName(driver);
    dataSource.setUrl(this.url);
    dataSource.setMaxTotal(threads);/*from   ww  w .j a v  a 2s.c  o  m*/
    dataSource.setUsername(username);
    dataSource.setPassword(password);

    JDebug.out.info("jdbc get connection...");

    // open at least one connection to prevent delay on writing/reading
    Connection conn;
    try {
        conn = dataSource.getConnection();
        conn.close();
    } catch (SQLException ex) {
        JDebug.StackTrace(Level.SEVERE, ex);
    }

    JDebug.out.info("jdbc init storage...done");
}

From source file:com.twosigma.beaker.sql.QueryExecutor.java

public synchronized Object executeQuery(String script, NamespaceClient namespaceClient,
        ConnectionStringHolder defaultConnectionString,
        Map<String, ConnectionStringHolder> namedConnectionString)
        throws SQLException, IOException, ReadVariableException {

    BeakerParser beakerParser = new BeakerParser(script, namespaceClient, defaultConnectionString,
            namedConnectionString, jdbcClient);

    BasicDataSource ds = jdbcClient.getDataSource(beakerParser.getDbURI().getActualConnectionString());

    Properties info = null;//from   w w  w .j a  v  a 2 s  .c om
    if (beakerParser.getDbURI().getUser() != null && !beakerParser.getDbURI().getUser().isEmpty()) {
        if (info == null) {
            info = new Properties();
        }
        info.put("user", beakerParser.getDbURI().getUser());
    }
    if (beakerParser.getDbURI().getPassword() != null && !beakerParser.getDbURI().getPassword().isEmpty()) {
        if (info == null) {
            info = new Properties();
        }
        info.put("password", beakerParser.getDbURI().getPassword());
    }

    boolean isConnectionExeption = true;

    // Workaround for "h2database" : do not work correctly with empty or null "Properties"
    try (Connection connection = info != null
            ? ds.getDriver().connect(beakerParser.getDbURI().getActualConnectionString(), info)
            : ds.getConnection()) {
        this.connection = connection;
        connection.setAutoCommit(false);
        List<Object> resultsForOutputCell = new ArrayList<>();
        Map<String, List<Object>> resultsForNamspace = new HashMap<>();

        for (BeakerParseResult queryLine : beakerParser.getResults()) {

            BeakerInputVar basicIterationArray = null;
            for (BeakerInputVar parameter : queryLine.getInputVars()) {
                if (parameter.isAll()) {
                    basicIterationArray = parameter;
                    if (parameter.getErrorMessage() != null)
                        throw new ReadVariableException(parameter.getErrorMessage());
                    //ToDo make recursively iteration over several arrays
                    break;
                }
            }

            try {
                if (basicIterationArray != null) {
                    int l;
                    Object obj;
                    try {
                        obj = namespaceClient.get(basicIterationArray.objectName);
                    } catch (Exception e) {
                        throw new ReadVariableException(basicIterationArray.objectName, e);
                    }
                    if (obj instanceof List) {
                        l = ((List) obj).size();
                    } else if (obj.getClass().isArray()) {
                        l = Array.getLength(obj);
                    } else
                        break;

                    for (int i = 0; i < l; i++) {
                        QueryResult queryResult = executeQuery(i, queryLine, connection, namespaceClient);
                        adoptResult(queryLine, queryResult, resultsForOutputCell, resultsForNamspace);
                    }
                } else {
                    QueryResult queryResult = executeQuery(-1, queryLine, connection, namespaceClient);
                    adoptResult(queryLine, queryResult, resultsForOutputCell, resultsForNamspace);
                }
            } catch (Exception e) {
                isConnectionExeption = false;
                throw e;
            }
        }
        connection.commit();

        for (String output : resultsForNamspace.keySet()) {
            if (resultsForNamspace.get(output).size() > 1) {
                OutputContainer outputContainer = new OutputContainer(resultsForNamspace.get(output));
                namespaceClient.set(output, outputContainer);
            } else if (!resultsForNamspace.get(output).isEmpty()) {
                namespaceClient.set(output, resultsForNamspace.get(output).get(0));
            } else {
                namespaceClient.set(output, null);
            }
        }

        if (resultsForOutputCell.size() > 1) {
            OutputContainer outputContainer = new OutputContainer(resultsForOutputCell);
            return outputContainer;
        } else if (!resultsForOutputCell.isEmpty()) {
            return resultsForOutputCell.get(0);
        } else {
            return null;
        }

    } catch (Exception e) {
        if (beakerParser.getDbURI() != null && isConnectionExeption) {
            beakerParser.getDbURI().setShowDialog(true);
        }
        throw e;
    } finally {
        statement = null;
    }
}

From source file:com.twosigma.beakerx.sql.QueryExecutor.java

public synchronized Object executeQuery(String script, BeakerXClient namespaceClient,
        ConnectionStringHolder defaultConnectionString,
        Map<String, ConnectionStringHolder> namedConnectionString)
        throws SQLException, IOException, ReadVariableException {

    BeakerParser beakerParser = new BeakerParser(script, namespaceClient, defaultConnectionString,
            namedConnectionString, jdbcClient);

    BasicDataSource ds = jdbcClient.getDataSource(beakerParser.getDbURI().getActualConnectionString());

    Properties info = null;/*from w w  w  . j a  v  a2s  .  co  m*/
    if (beakerParser.getDbURI().getUser() != null && !beakerParser.getDbURI().getUser().isEmpty()) {
        if (info == null) {
            info = new Properties();
        }
        info.put("user", beakerParser.getDbURI().getUser());
    }
    if (beakerParser.getDbURI().getPassword() != null && !beakerParser.getDbURI().getPassword().isEmpty()) {
        if (info == null) {
            info = new Properties();
        }
        info.put("password", beakerParser.getDbURI().getPassword());
    }

    boolean isConnectionExeption = true;

    // Workaround for "h2database" : do not work correctly with empty or null "Properties"
    try (Connection connection = info != null
            ? ds.getDriver().connect(beakerParser.getDbURI().getActualConnectionString(), info)
            : ds.getConnection()) {
        this.connection = connection;
        connection.setAutoCommit(false);
        List<Object> resultsForOutputCell = new ArrayList<>();
        Map<String, List<Object>> resultsForNamspace = new HashMap<>();

        for (BeakerParseResult queryLine : beakerParser.getResults()) {

            BeakerInputVar basicIterationArray = null;
            for (BeakerInputVar parameter : queryLine.getInputVars()) {
                if (parameter.isAll()) {
                    basicIterationArray = parameter;
                    if (parameter.getErrorMessage() != null)
                        throw new ReadVariableException(parameter.getErrorMessage());
                    //ToDo make recursively iteration over several arrays
                    break;
                }
            }

            try {
                if (basicIterationArray != null) {
                    int l;
                    Object obj;
                    try {
                        obj = namespaceClient.get(basicIterationArray.objectName);
                    } catch (Exception e) {
                        throw new ReadVariableException(basicIterationArray.objectName, e);
                    }
                    if (obj instanceof List) {
                        l = ((List) obj).size();
                    } else if (obj.getClass().isArray()) {
                        l = Array.getLength(obj);
                    } else
                        break;

                    for (int i = 0; i < l; i++) {
                        QueryResult queryResult = executeQuery(i, queryLine, connection, namespaceClient);
                        adoptResult(queryLine, queryResult, resultsForOutputCell, resultsForNamspace);
                    }
                } else {
                    QueryResult queryResult = executeQuery(-1, queryLine, connection, namespaceClient);
                    adoptResult(queryLine, queryResult, resultsForOutputCell, resultsForNamspace);
                }
            } catch (Exception e) {
                isConnectionExeption = false;
                throw e;
            }
        }
        connection.commit();

        for (String output : resultsForNamspace.keySet()) {
            if (resultsForNamspace.get(output).size() > 1) {
                OutputContainer outputContainer = new OutputContainer(resultsForNamspace.get(output));
                namespaceClient.set(output, outputContainer);
            } else if (!resultsForNamspace.get(output).isEmpty()) {
                namespaceClient.set(output, resultsForNamspace.get(output).get(0));
            } else {
                namespaceClient.set(output, null);
            }
        }

        if (resultsForOutputCell.size() > 1) {
            OutputContainer outputContainer = new OutputContainer(resultsForOutputCell);
            return outputContainer;
        } else if (!resultsForOutputCell.isEmpty()) {
            return resultsForOutputCell.get(0);
        } else {
            return OutputCell.HIDDEN;
        }

    } catch (Exception e) {
        if (beakerParser.getDbURI() != null && isConnectionExeption) {
            beakerParser.getDbURI().setShowDialog(true);
        }
        throw e;
    } finally {
        statement = null;
    }
}

From source file:org.apache.activemq.camel.JmsJdbcXARollbackTest.java

private java.sql.Connection getJDBCConnection() throws Exception {
    BasicDataSource dataSource = getMandatoryBean(BasicDataSource.class, "managedDataSourceWithRecovery");
    return dataSource.getConnection();
}

From source file:org.assertj.db.database.sqlite.SqliteConfiguration.java

@Bean
public DataSource dataSource() {
    BasicDataSource dataSource = new BasicDataSource();
    dataSource.setDriverClassName("org.sqlite.JDBC");
    dataSource.setUrl("jdbc:sqlite:target/testDerby.db");
    dataSource.setUsername("");
    dataSource.setPassword("");

    try {//from www.  j  a  va2  s.  c o  m
        try (Connection connection = dataSource.getConnection();) {
            try (Statement statement = connection.createStatement()) {
                statement.executeUpdate("drop table if exists teSt;");
                statement.executeUpdate("create table teSt (" + " Var1 BIGINT PRIMARY KEY,\n" + " vAr2 BLOB,\n"
                        + " vaR3 CHAR,\n" + " var4 CHAR FOR BIT DATA,\n" + " var5 CLOB,\n" + " var6 DATE,\n"
                        + " var7 DECIMAL,\n" + " var8 DOUBLE,\n" + " var9 DOUBLE PRECISION,\n"
                        + " var10 FLOAT,\n" + " var11 INTEGER,\n" + " var12 LONG VARCHAR,\n"
                        + " var13 LONG VARCHAR FOR BIT DATA,\n" + " var14 NUMERIC,\n" + " var15 REAL,\n"
                        + " var16 SMALLINT,\n" + " var17 TIME,\n" + " var18 TIMESTAMP,\n" + " var19 VARCHAR,\n"
                        + " var20 VARCHAR FOR BIT DATA" + " )");
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return dataSource;
}

From source file:org.hspconsortium.cwfdemo.setup.DemoSetup.java

public DemoSetup(BasicDataSource ds, Resource sqlResource) throws Exception {
    log.info("Performing setup of demo application...");

    try (Connection conn = ds.getConnection(); InputStream is = sqlResource.getInputStream()) {
        List<String> lines = IOUtils.readLines(is);
        PreparedStatement ps = conn.prepareStatement(StrUtil.fromList(lines));
        ps.execute();//from   w  w  w . ja  va 2s  .  c o m
        log.info("Completed setup of demo application.");
    } catch (Exception e) {
        log.error("Error during demo setup.  This can occur if setup has already been processed.\n\n"
                + e.getMessage());
    }
}

From source file:org.ramadda.repository.database.DatabaseManager.java

/**
 * _more_/*from   w  w w  . j a v  a 2s .  c  o m*/
 *
 *
 * @param prefix _more_
 * @param id _more_
 *
 * @return _more_
 *
 * @throws Exception _more_
 */
public Connection getExternalConnection(String prefix, String id) throws Exception {
    String full = prefix + "." + id;
    String connectionUrl = getRepository().getProperty(full + ".url",
            getRepository().getProperty(prefix + ".url", (String) null));
    String user = getRepository().getProperty(full + ".user",
            getRepository().getProperty(prefix + ".user", (String) null));
    String password = getRepository().getProperty(full + ".password",
            getRepository().getProperty(prefix + ".password", (String) null));

    if (connectionUrl == null) {
        System.err.println("No connection url property for:" + full);

        return null;
    }

    //Load the jdbc driver class
    String driverClassName = loadDriver(connectionUrl);

    Properties connectionProps = new Properties();
    if (user != null) {
        connectionProps.put("user", user);
    }
    if (password != null) {
        connectionProps.put("password", password);
    }

    Connection conn = DriverManager.getConnection(connectionUrl, connectionProps);
    if (conn == null) {
        System.err.println("Got null connection for url:" + connectionUrl);

        return null;
    }

    //TODO: do connection pooling of connections sometime
    if (true) {
        return conn;
    }

    BasicDataSource ds = getExternalDataSource(prefix);
    if (ds == null) {
        return null;
    }

    return ds.getConnection();
}

From source file:org.ramadda.repository.database.DatabaseManager.java

/**
 * _more_//www. j av  a 2s .  c  o m
 *
 * @param msg _more_
 *
 * @return _more_
 *
 * @throws Exception _more_
 */
private Connection getConnection(String msg) throws Exception {
    Connection connection;
    synchronized (CONNECTION_MUTEX) {
        BasicDataSource tmpDataSource = dataSource;
        if (tmpDataSource == null) {
            throw new IllegalStateException("DatabaseManager: dataSource is null");
        }
        openCnt--;
        /*
        System.err.println("");
        */
        connection = tmpDataSource.getConnection();
    }
    synchronized (connectionInfos) {
        //            connectionInfos.add(new ConnectionInfo(connection, msg));
        //            connectionMap.put(connection,
        //                              new ConnectionInfo(connection, msg));
    }

    return connection;
}

From source file:tilda.db.ConnectionPool.java

public static Connection get(String Id) throws Exception {
    BasicDataSource BDS = _DataSourcesById.get(Id);
    if (BDS == null)
        throw new Exception("Cannot find a connection pool for " + Id);
    long T0 = System.nanoTime();
    java.sql.Connection C = BDS.getConnection();
    Connection Conn = new Connection(C, Id);
    PerfTracker.add(TransactionType.CONNECTION_GET, System.nanoTime() - T0);
    LOG.info("-------- O B T A I N E D   C O N N E C T I O N --------- " + Conn._PoolId + " ---- ("
            + BDS.getNumActive() + "/" + BDS.getNumIdle() + "/" + BDS.getMaxTotal() + ")   ----------");
    return Conn;//from w w w. jav  a2s .  c  om
}