Package oracle.jdbc.datasource

## Interface OracleCommonDataSource

All Superinterfaces:
  `CommonDataSource`

All Known Subinterfaces:
  `OracleConnectionPoolDataSource`, `OracleConnectionPoolDataSource`, `OracleDataSource`, `OracleDataSource`, `OracleXADataSource`, `OracleXADataSource`

All Known Implementing Classes:
  `OracleConnectionPoolDataSource`, `OracleConnectionPoolDataSource`, `OracleConnectionPoolDataSourceImpl`, `OracleDataSource`, `OracleDataSource`, `OracleDataSourceImpl`, `OracleOCIConnectionPool`, `OracleXADataSource`, `OracleXADataSource`, `OracleXADataSourceImpl`

    public interface OracleCommonDataSource
    extends CommonDataSource

Interface that defines the methods which are common between `OracleDataSource`, `OracleXADataSource` and `OracleConnectionPoolDataSource` and defines the Oracle extensions to the standard JDBC interface `CommonDataSource`.

Since:
  12.2

### Method Summary

All Methods Instance Methods Abstract Methods Default Methods
`default OracleShardingKeyBuilder` `createShardingKeyBuilder()` Creates a new `OracleShardingKeyBuilder` instance.
`Properties` `getConnectionProperties()` Gets the connection properties that are set on this data source object.
`String` `getConnectionProperty​(String propertyName)` Gets the specified connection property that is set on this data source.
`String` `getDatabaseName()` Gets the name of the database set on this DataSource instance.
`String` `getDataSourceName()` Gets the datasource name for this instance if set.
`String` `getDescription()` Get the Desciption of this data source.
`boolean` `getExplicitCachingEnabled()` Returns the current value of the explicitCachingEnabled property.
`boolean` `getImplicitCachingEnabled()` getImplicitCachingEnabled Returns the current value of the implicitCachingEnabled property.
`int` `getMaxStatements()` Returns the current value of the maxStatements property.
`String` `getNetworkProtocol()` Gets the network protocol set on the datasource.
`int` `getPortNumber()` Gets the port number on which server is listening for requests.
`String` `getRoleName()` Gets the data source role name.
`String` `getServerName()` Gets the name of the server on which database is running.
`String` `getURL()` Gets the URL for this datasource.
`String` `getUser()` Gets the user name for this datasource.
`void` `setConnectionProperties​(Properties value)` Sets the Connection Properties for the datasource
`void` `setConnectionProperty​(String name, String value)` Sets a connection property on the data source.
`void` `setDatabaseName​(String dbname)` Sets the name of a particular database on a server.
`void` `setDataSourceName​(String dsname)` Sets the datasource name.
`void` `setDescription​(String des)` Sets the Description for this data source instance.
`void` `setExplicitCachingEnabled​(boolean cache)` Sets the value of the explicitCachingEnabled property, which enables or disables the explicit cache.
`void` `setImplicitCachingEnabled​(boolean cache)` Sets the value of the implicitCachingEnabled property, which enables or disables the implicit statement cache.
`void` `setMaxStatements​(int max)` Specifies the value of the maxStatements property.
`void` `setNetworkProtocol​(String np)` Sets the network protocol for the connections.
`void` `setPassword​(String pd)` Sets the password with which connections have to be obtained.
`void` `setPortNumber​(int pn)` Sets the port number where a server is listening for requests.
`void` `setRoleName​(String roleName)` Sets the data source role name.
`void` `setServerName​(String sn)` Sets the name of the Server on which database is running.
`void` `setSingleShardTransactionSupport​(boolean allow)` Sets single shard transaction support in auto commit OFF mode.
`void` `setSSLContext​(SSLContext sslContext)` Specifies a `SSLContext` to use as a factory for SSLEngine objects that carry out the TLS protocol.
`void` `setURL​(String url)` Sets the URL from which connections have to be obtained.
`void` `setUser​(String userName)` Set the user name with which connections have to be obtained.

### Methods inherited from interface javax.sql.CommonDataSource

`getLoginTimeout, getLogWriter, getParentLogger, setLoginTimeout, setLogWriter`

### Method Detail

#### createShardingKeyBuilder

    default OracleShardingKeyBuilder createShardingKeyBuilder()
                                                       throws SQLException

Creates a new `OracleShardingKeyBuilder` instance.

Specified by:
  `createShardingKeyBuilder` in interface `CommonDataSource`
Returns:
  The ShardingKeyBuilder instance that was created
Throws:
  `SQLException` - if an error occurs creating the builder
See Also:
  `OracleShardingKeyBuilder`

#### setDataSourceName

    void setDataSourceName​(String dsname)
                    throws SQLException

Sets the datasource name.

Parameters:
  `dsname` - DataSource Name to be set.
Throws:
  `SQLException`

#### getDataSourceName

    String getDataSourceName()

Gets the datasource name for this instance if set. Returns null if not set.

Returns:
  DaraSource name

#### getDatabaseName

    String getDatabaseName()

Gets the name of the database set on this DataSource instance.

Returns:
  database name set on this instance or null if not set.

#### setDatabaseName

    void setDatabaseName​(String dbname)
                  throws SQLException

Sets the name of a particular database on a server. In Oracle's jargon this is called SID (System Identifier).

If URL is set, this property will be ignored.

Parameters:
  `dsname` - database name to be set.
Throws:
  `SQLException`

#### setServerName

    void setServerName​(String sn)
                throws SQLException

Sets the name of the Server on which database is running. If URL is set, this property will be ignored.

Parameters:
  `sn` - server/host name to be set.
Throws:
  `SQLException`

#### getServerName

    String getServerName()

Gets the name of the server on which database is running.

Returns:
  server name set on this instance or null if not set.

#### setURL

    void setURL​(String url)
         throws SQLException

Sets the URL from which connections have to be obtained. If URL is set all other properties like databasename, servername, portNumber, network protocol, tnsentry, and driver Type will be ignored.

Parameters:
  `url` - URL to be set.
Throws:
  `SQLException`

#### getURL

    String getURL()
           throws SQLException

Gets the URL for this datasource. Will return the default value "jdbc:oracle:oci8:@" if not set before.

Throws:
  `SQLException`

#### setUser

    void setUser​(String userName)
          throws SQLException

Set the user name with which connections have to be obtained.

Parameters:
  `user` - Username to be set.
Throws:
  `SQLException`

#### getUser

    String getUser()

Gets the user name for this datasource. Will return the default value ("scott") if not set before.

#### setPassword

    void setPassword​(String pd)
              throws SQLException

Sets the password with which connections have to be obtained. The default value is "tiger".

Parameters:
  `pd` - Passowrd to be set.
Throws:
  `SQLException`

#### getDescription

    String getDescription()

Get the Desciption of this data source.

Returns:
  Description that was set or will return null if not set.

#### setDescription

    void setDescription​(String des)
                 throws SQLException

Sets the Description for this data source instance.

Parameters:
  `des` - Desciption to be set.
Throws:
  `SQLException`

#### getNetworkProtocol

    String getNetworkProtocol()

Gets the network protocol set on the datasource.

Returns:
  network protocol that was set or null if not.

#### setNetworkProtocol

    void setNetworkProtocol​(String np)
                     throws SQLException

Sets the network protocol for the connections. Default is "tcp". Can be set to all possible protocols Net8 supports. Only needed for JDBC OCI driver.

Parameters:
  `np` - set the network protocol to be used.
Throws:
  `SQLException`

#### setPortNumber

    void setPortNumber​(int pn)
                throws SQLException

Sets the port number where a server is listening for requests. Not required when URL is set.

Parameters:
  `pn` - port number on which server is listening
Throws:
  `SQLException`

#### getPortNumber

    int getPortNumber()

Gets the port number on which server is listening for requests.

Returns:
  port number if set or null if not set.

#### setConnectionProperties

    void setConnectionProperties​(Properties value)
                          throws SQLException

Sets the Connection Properties for the datasource

The argument to this method is a Properties object. This properties object is used to create the connections returned by the receiver. The keys and values are Strings. The keys, values, and their meanings are defined in oracle.jdbc.OracleConnection.

Parameters:
  `value` - a Properties object with the desired connection property names and values.
Throws:
  `SQLException`
See Also:
  `OracleConnection`

#### getConnectionProperties

    Properties getConnectionProperties()
                                throws SQLException

Gets the connection properties that are set on this data source object. These exclude any sensitive property with "password" in its name (case-insensitive); for example, "password", "oracle.net.websocketPassword", etc.

Returns:
  A java.util.Properties object containing all the connection properties set on this data source object, excluding all sensitive properties described above. Null if there are no such connection properties set.
Throws:
  `SQLException` - If any exception occurs while getting the connection properties.

#### setConnectionProperty

    void setConnectionProperty​(String name,
                               String value)
                        throws SQLException

Sets a connection property on the data source.

Parameters:
  `name` - The name of the connection property to be set.
  `value` - The value of the connection property to be set.
Throws:
  `SQLException` - If any exception occurred while setting the connection property.
See Also:
  `setConnectionProperties(java.util.Properties)`, `OracleConnection`

#### getConnectionProperty

    String getConnectionProperty​(String propertyName)
                          throws SQLException

Gets the specified connection property that is set on this data source. Any sensitive property with "password" in its name (case-insensitive, for example, "password", "oracle.net.websocketPassword", etc.) is treated as if that property were not set.

Parameters:
  `propertyName` - The name of the specified connection property.
Returns:
  The String value of the specified connection property. Null if there is no such connection property set, or the specified connection property has "password" in its name.
Throws:
  `SQLException` - If any exception occurs while getting the connection property.

#### setMaxStatements

    void setMaxStatements​(int max)
                   throws SQLException

Specifies the value of the maxStatements property. This is the size of the statement cache used by both implicit and explicit caching. This value does not apply to the statement cache size of connections created by ImplicitStatementCache for which the cache size is set through a java.util.Properties object.

Parameters:
  `max` - Requested size of the cache. If the existing cache size is less than max, statements will be purged to reduce the size.
Throws:
  `SQLException` - if max < 0

#### getMaxStatements

    int getMaxStatements()
                  throws SQLException

Returns the current value of the maxStatements property.

Throws:
  `SQLException`

#### setImplicitCachingEnabled

    void setImplicitCachingEnabled​(boolean cache)
                            throws SQLException

Sets the value of the implicitCachingEnabled property, which enables or disables the implicit statement cache. Note that this is independent of the cache size that is set with setMaxStatements().

Parameters:
  `cache` - If true, then implicit caching is enabled. If false, then any existing statement is purged and the implicit caching is disabled.
Throws:
  `SQLException`

#### getImplicitCachingEnabled

    boolean getImplicitCachingEnabled()
                               throws SQLException

getImplicitCachingEnabled Returns the current value of the implicitCachingEnabled property.

Throws:
  `SQLException`

#### setExplicitCachingEnabled

    void setExplicitCachingEnabled​(boolean cache)
                            throws SQLException

Sets the value of the explicitCachingEnabled property, which enables or disables the explicit cache. Note that this is independent of the cache size, which is set with setMaxStatements().

Parameters:
  `cache` - If true, then explicit caching is enabled. If false, then any existing statement is purged and the explicit caching is disabled.
Throws:
  `SQLException` - if called on a logical connection.

#### getExplicitCachingEnabled

    boolean getExplicitCachingEnabled()
                               throws SQLException

Returns the current value of the explicitCachingEnabled property.

Throws:
  `SQLException`

#### setRoleName

    void setRoleName​(String roleName)
              throws SQLException

Sets the data source role name.

Parameters:
  `roleName` - data source role name to be set.
Throws:
  `SQLException`

#### getRoleName

    String getRoleName()

Gets the data source role name.

Returns:
  data source role name.

#### setSSLContext

    void setSSLContext​(SSLContext sslContext)
                throws SQLException

Specifies a `SSLContext` to use as a factory for SSLEngine objects that carry out the TLS protocol.

The SSLContext must be initialized before establishing a connection to the data source. The certificates specified by that initialization will be used in place of any connection properties that would otherwise have specified certificates, such as key store and trust store property values.

Specifying a null value will clear any non-null value that may have been set previously, causing this data source to behave as if this method had never been called at all.

Parameters:
  `sslContext` - An SSLContext to use as an SSLEngine factory.
Throws:
  `SQLException` - if this data source is incompatible with the specified SSLContext.
Since:
  20

#### setSingleShardTransactionSupport

    void setSingleShardTransactionSupport​(boolean allow)
                                   throws SQLException

Sets single shard transaction support in auto commit OFF mode. Default value is false. Only used for the sharding driver.

Parameters:
  `allow` -
Throws:
  `SQLException`
Since:
  21