Skip to content

Commit

Permalink
Add Connection String Provider sample
Browse files Browse the repository at this point in the history
  • Loading branch information
MouhsinElmajdouby committed Nov 20, 2024
1 parent b24a8ee commit 55c281b
Showing 1 changed file with 98 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
/*
** Copyright (c) 2024 Oracle and/or its affiliates.
**
** The Universal Permissive License (UPL), Version 1.0
**
** Subject to the condition set forth below, permission is hereby granted to any
** person obtaining a copy of this software, associated documentation and/or data
** (collectively the "Software"), free of charge and under any and all copyright
** rights in the Software, and any and all patent rights owned or freely
** licensable by each licensor hereunder covering either (i) the unmodified
** Software as contributed to or provided by such licensor, or (ii) the Larger
** Works (as defined below), to deal in both
**
** (a) the Software, and
** (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if
** one is included with the Software (each a "Larger Work" to which the Software
** is contributed by such licensors),
**
** without restriction, including without limitation the rights to copy, create
** derivative works of, display, perform, and distribute the Software and make,
** use, sell, offer for sale, import, export, have made, and have sold the
** Software and the Larger Work(s), and to sublicense the foregoing rights on
** either these or other terms.
**
** This license is subject to the following condition:
** The above copyright notice and either this complete permission notice or at
** a minimum a reference to the UPL must be included in all copies or
** substantial portions of the Software.
**
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
** SOFTWARE.
*/
package oracle.jdbc.provider.oci.configuration.resource;

import oracle.jdbc.datasource.impl.OracleDataSource;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
* Example demonstrating how to configure Oracle JDBC with the OCI Vault
* Connection String Provider to retrieve connection strings from a tnsnames.ora
* file stored in OCI Vault.
*/
public class SimpleConnectionStringProviderExample {
public static void main(String[] args) throws SQLException {
try {
OracleDataSource ds = new OracleDataSource();
ds.setURL("jdbc:oracle:thin:@");
ds.setUser("DB_USERNAME");
ds.setPassword("DB_PASSWORD");

Properties connectionProps = new Properties();

// Connection String Provider for retrieving tnsnames.ora content
// from OCI Vault
connectionProps.put("oracle.jdbc.provider.connectionString",
"ojdbc-provider-oci-vault-tnsnames");

connectionProps.put("oracle.jdbc.provider.connectionString.ocid",
"ocid1.autonomousdatabase.oc1.phx.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");

// Specify the tnsAlias to retrieve the corresponding connection string
connectionProps.put("oracle.jdbc.provider.connectionString.tnsAlias",
"YOUR_TNS_ALIAS");

// TLS Configuration for secure connection
connectionProps.put("oracle.jdbc.provider.tlsConfiguration",
"ojdbc-provider-oci-database-tls");
connectionProps.put("oracle.jdbc.provider.tlsConfiguration.ocid",
"ocid1.autonomousdatabase.oc1.phx.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");

ds.setConnectionProperties(connectionProps);

try (Connection cn = ds.getConnection()) {

String query = "SELECT 'Hello, db' FROM sys.dual";
try (Statement st = cn.createStatement();
ResultSet rs = st.executeQuery(query)) {

if (rs.next()) {
System.out.println(rs.getString(1));
}
}
}
} catch (SQLException e) {
throw new RuntimeException("Connection failed: ", e);
}
}
}

0 comments on commit 55c281b

Please sign in to comment.