Package oracle.jdbc.datasource

Beginning in Oracle Release 12.2, some of the Oracle extensions to JDBC are captured in the package oracle.jdbc.datasource. This package contains interfaces that extend standard JDBC interfaces in javax.sql.

For data source creations using Oracle JDBC driver 20c and higher versions, we strongly recommend that your code use classes in the oracle.jdbc.datasource.impl package. This applies to both standalone and application container use cases.

Data source classes in packages oracle.jdbc.pool and oracle.jdbc.replay continue to function, but will be gradually phased out. For data source creations using Oracle JDBC driver 19c and earlier versions, use these classes.

For most common scenarios, use oracle.jdbc.datasource.impl.OracleDataSource. The following example illustrates the use of this data source to create a JDBC connection:

  
    oracle.jdbc.datasource.OracleDataSource ods =
      new oracle.jdbc.datasource.impl.OracleDataSource();
    ods.setURL("jdbc:oracle:thin:@//dbhost:dbport/dbservice");
    ods.setUser("User");
    ods.setPassword("Passwd");
    ods.setConnectionProperty("connProp1", "value1");
    ods.setConnectionProperty("connProp2", "value2");
 
    Connection conn = ods.getConnection();
  
  

The following example illustrates the use of this data source with the Oracle Universal Connection Pool (UCP):

  
    oracle.ucp.jdbc.PoolDataSource pds =
      oracle.ucp.jdbc.PoolDataSourceFactory.getPoolDataSource();
    pds.setConnectionFactoryClassName(
      "oracle.jdbc.datasource.impl.OracleDataSource");
    pds.setURL("jdbc:oracle:thin:@//dbhost:dbport/dbservice");
    pds.setUser("User");
    pds.setPassword("Passwd");
    pds.setConnectionProperty("connProp1", "value1");
    pds.setConnectionProperty("connProp2", "value2");
 
    Connection conn = pds.getConnection();
    ...... // JDBC calls
    conn.close();  // return connection to UCP
  
  

The following example illustrates the use of a connection obtained from this data source for Application Continuity protection (note that you must use an AC database service):

  
    oracle.jdbc.datasource.OracleDataSource ods =
      new oracle.jdbc.datasource.impl.OracleDataSource();
    ods.setURL("jdbc:oracle:thin:@//dbhost:dbport/AC_service");
    ods.setUser("User");
    ods.setPassword("Passwd");
    ods.setConnectionProperty("connProp1", "value1");
    ods.setConnectionProperty("connProp2", "value2");
 
    oracle.jdbc.OracleConnection conn =
      (oracle.jdbc.OracleConnection) ods.getConnection();
    conn.beginRequest();
    ...... // JDBC calls protected by AC
    conn.endRequest();
  
  

The following example illustrates the use of this data source with both UCP and Application Continuity:

  
    oracle.ucp.jdbc.PoolDataSource pds =
      oracle.ucp.jdbc.PoolDataSourceFactory.getPoolDataSource();
    pds.setConnectionFactoryClassName(
      "oracle.jdbc.datasource.impl.OracleDataSource");
    pds.setURL("jdbc:oracle:thin:@//dbhost:dbport/AC_service");
    pds.setUser("User");
    pds.setPassword("Passwd");
    pds.setConnectionProperty("connProp1", "value1");
    pds.setConnectionProperty("connProp2", "value2");
 
    Connection conn = pds.getConnection();
    ...... // JDBC calls protected by AC
    conn.close();  // return connection to UCP
  
  

oracle.jdbc.datasource.impl.OracleConnectionPoolDataSource is for connection pool implementers, and should rarely be used directly.
Since:
12.2
See Also:
javax.sql, oracle.jdbc.datasource.impl, oracle.jdbc.pool, oracle.jdbc.replay