Getting Driver and Server Information

This section describes how to get JDBC driver and database information through the DatabaseMetaData object.

Once you have created a database connection object, you can obtain some version information about the JDBC driver and database server through the DatabaseMetaData object as shown in the following program:

/* OracleDatabaseInfo.java
 * Copyright (c) HerongYang.com. All Rights Reserved.
 */
import java.sql.*;
import javax.sql.*;
public class OracleDatabaseInfo {
  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 driver and database info
      DatabaseMetaData meta = con.getMetaData();
      System.out.println("Server name: "
        + meta.getDatabaseProductName());
      System.out.println("Server version: "
        + meta.getDatabaseProductVersion());
      System.out.println("Driver name: "
        + meta.getDriverName());
      System.out.println("Driver version: "
        + meta.getDriverVersion());
      System.out.println("JDBC major version: "
        + meta.getJDBCMajorVersion());
      System.out.println("JDBC minor version: "
        + meta.getJDBCMinorVersion());

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

The output reports that ojdbc11.jar is a JDBC 4.3. driver, when running with JDK 17 and Oracle 21.3 server.

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

herong> java -cp .;ojdbc11.jar OracleDatabaseInfo

Server name: Oracle
Server version: Oracle Database 21c Express Edition Release 21.0.0.0.0
Version 21.3.0.0.0
Driver name: Oracle JDBC driver
Driver version: 21.4.0.0.0
JDBC major version: 4
JDBC minor version: 3

The output reports that ojdbc6.jar is a JDBC 11.2 driver, when running with JDK 1.8 and Oracle 11.2 server. But that report is wrong. It should be a JDBC 4.? driver.

herong> \Progra~1\java\jdk1.8.0_45\bin\java -cp .;ojdbc6.jar \
  OracleDatabaseInfo

Server name: Oracle
Server version: Oracle Database 11g Express Edition Release 11.2.0.2.0
Driver name: Oracle JDBC driver
Driver version: 11.2.0.4.0
JDBC major version: 11
JDBC minor version: 2

When running with JDK 1.6, Oracle 10.2 and ojdbc14.jar, I was getting similar output:

herong> \Progra~1\java\jdk1.6.0_2\bin\java -cp .;ojdbc14.jar \
  OracleDatabaseInfo

Server name: Oracle
Server version: Oracle Database 10g Express Edition Release 10.2.0.1.0
Driver name: Oracle JDBC driver
Driver version: 10.2.0.3.0
JDBC major version: 10
JDBC minor version: 2

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