The Java Program: Drivers.java

  1 import java.sql.Driver;
  2 import java.sql.DriverManager;
  3 import java.sql.DriverPropertyInfo;
  4 import java.sql.SQLException;
  5 import java.util.*;
  6 
  7 /*
  8   Make sure drivers are on classpath "-classpath path1:path2
  9   -Djdbc.drivers=sun.jdbc.odbc.JdbcOdbcDriver:com.mysql.jdbc.Driver
 10 */
 11 public class Drivers {
 12    
 13    private static void loadDriver (final String cls) {
 14       try {
 15          // Some JVMs get confused, so use "newInstance()"
 16          Class.forName (cls).newInstance();  // Discard results; just load file
 17       } catch (IllegalAccessException e) {
 18          e.printStackTrace();
 19       } catch (InstantiationException e) {
 20          e.printStackTrace();
 21       } catch (ClassNotFoundException e) {
 22          System.err.println ("Class not found: " + cls);
 23       }
 24    }
 25    
 26    static {
 27       System.setProperty ("jdbc.drivers", "com.mysql.jdbc.Driver:sun.jdbc.odbc.JdbcOdbcDriver");
 28       //loadDriver ("sun.jdbc.odbc.JdbcOdbcDriver");
 29       //loadDriver ("com.mysql.jdbc.Driver");
 30    }
 31 
 32    public static void main (String [] args) {
 33 
 34       System.out.println ("Known JDBC Drivers ...");
 35 
 36       for (Enumeration drivers = DriverManager.getDrivers(); drivers.hasMoreElements(); ) {
 37          final Driver driver = (Driver) drivers.nextElement();
 38          System.out.println ("  Driver: " + driver.getClass().getName());
 39          System.out.println ("  Major version: " + driver.getMajorVersion());
 40          System.out.println ("  Minor version: " + driver.getMinorVersion());
 41          System.out.println ("  Compliant:     " + driver.jdbcCompliant());
 42          try {
 43             final DriverPropertyInfo props[] = driver.getPropertyInfo ("jdbc:mysql:", new Properties());
 44             if (props==null) {
 45                System.out.println ("  No property info.");
 46             } else {
 47                System.out.println ("  Property info:");
 48                for (int i=0; i<props.length; i++) {
 49                   System.out.print ("     ");
 50                   System.out.print (props[i].name);
 51                   System.out.print ("=");
 52                   System.out.print (props[i].value);
 53                   System.out.print (";  ");
 54                   System.out.println (props[i].description);
 55                }
 56             }
 57          } catch (SQLException e) {
 58             e.printStackTrace();
 59          } finally {
 60             System.out.println ();
 61          }
 62             
 63       }
 64    }
 65 }