Creating Connections with DataSource Class

This section describes how to create connection objects with the DataSource class.

It is recommended now that connection objects are created by the DataSource implementation class, oracle.jdbc.pool.OracleDataSource. The Oracle implementation offers an extra method called setDriverType() to allow you to specify the driver type: "thin", "oci", or "kprb".

Here is a sample program that creates a connection object using the DataSource class without using JNDI services:

/* OracleDataSource.java
 * Copyright (c) HerongYang.com. All Rights Reserved.
 */
import java.sql.*;
import javax.sql.*;
public class OracleDataSource {
  public static void main(String [] args) {
    Connection con = null;
    try {

// Setting up the DataSource object
      oracle.jdbc.pool.OracleDataSource ds
        = new oracle.jdbc.pool.OracleDataSource();
      ds.setDriverType("thin");
      ds.setServerName("localhost");
      ds.setPortNumber(1521);
      ds.setDatabaseName("XE"); // Oracle SID
      ds.setUser("Herong");
      ds.setPassword("TopSecret");

// Getting a connection object
      con = ds.getConnection();

// Getting database info
      DatabaseMetaData meta = con.getMetaData();
      System.out.println("Server name: "
        + meta.getDatabaseProductName());
      System.out.println("Server version: "
        + meta.getDatabaseProductVersion());

// Getting the connection URL back
      System.out.println("Connection URL: "+ds.getURL());

// Closing the connection
      con.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

The output confirms that I got a good connection. Remember to include ojdbc6.jar in the classpath for compilation and execution:

herong> javac -cp .;ojdbc11.jar OracleDataSource.java

herong> java -cp .;ojdbc11.jar OracleDataSource

Server name: Oracle
Server version: Oracle Database 21c Express Edition Release 21.0.0.0.0 
  - Production

Version 21.3.0.0.0
Connection URL: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
  (PORT=1521)(HOST=localhost))(CONNECT_DATA=(SID=XE)))

Note that the OracleDataSource class made up a connection URL string in a format very close to the TSN (Transport Network Substrate) definition.

Table of Contents

 About This Book

 JDBC (Java Database Connectivity) Introduction

 JDK (Java SE) Installation

 Oracle Express Edition Installation on Windows

Oracle JDBC Drivers

 Oracle JDBC Drivers Overview

 JDBC Thin Client-Side Driver Installation

 Loading JDBC Driver Class - ojdbc16.jar

 JDBC Driver Connection URL

Creating Connections with DataSource Class

 DataSource Error - makeURL() Failed

 Getting Driver and Server Information

 "CREATE TABLE" - Creating New Tables

 "INSERT INTO" - Inserting New Data Rows

 Oracle - Reference Implementation of JdbcRowSet

 Oracle - PreparedStatement

 Oracle - JBDC CallableStatement

 Oracle CLOB (Character Large Object) - TEXT

 Oracle BLOB (Binary Large Object) - BLOB

 Archived Tutorials

 References

 Full Version in PDF/EPUB