Way2Java

Retrieve Metadata of Database with DatabaseMetaData

Using DatabaseMetaData interface, we can obtain the database specific metadata like the functions database supports, the driver used, its info and types permitted etc. This interface is used mostly by tool developers to know database-specific information.

Many methods exist with which the database can be queried. Following program illustrate the usage of few of the above methods.

import java.sql.*;

public class DatabaseMetaDataDemo
{
  public static void main(String args[]) throws Exception
  {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:snrao", "scott","tiger");

    DatabaseMetaData dbmd = con.getMetaData();
    System.out.println("Numeric Function:  " + dbmd.getNumericFunctions()); 
    System.out.println("String Functions: " + dbmd.getStringFunctions()); 
    System.out.println("System Functions: " + dbmd.getSystemFunctions()); 
    System.out.println("Search String Escape: " + dbmd.getSearchStringEscape()); 
    System.out.println("Schema Term: " + dbmd.getSchemaTerm());                           
    System.out.println("Supports Stored Procedures:  " + dbmd.supportsStoredProcedures());   
    System.out.println("Get Max Binary Literal Length: " + dbmd.getMaxBinaryLiteralLength()); 
  }	
}

All the methods are self-explanatory. The next program gets the driver information.

import java.sql.*;

public class DriverInfo
{
  public static void main(String args[])throws Exception
  {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:snrao", "scott","tiger");

    DatabaseMetaData dbmd = con.getMetaData();

    System.out.println("Database Name: " + dbmd.getDatabaseProductName());  
    System.out.println("Database Version: "+dbmd.getDatabaseProductVersion());                  
    System.out.println("Jdbc Driver version: " + dbmd.getDriverVersion());
    System.out.println("Uses Local Files:  " + dbmd.usesLocalFiles());  
    System.out.println("SQL key words: " + dbmd.getSQLKeywords());  
  }	
}



Output Screenshot of DatabaseMetaData