Sunday, December 30, 2012

Listing All Available Parameters for Creating a JDBC Connection

e238. Listing All Available Parameters for Creating a JDBC Connection
Driver.getPropertyInfo() returns a list of all available properties that can be supplied when using the driver to create a JDBC connection. This list can be displayed to the user.
    try {
        // Load the driver
        String driverName = "org.gjt.mm.mysql.Driver"; // MySQL MM JDBC driver
        Class.forName(driverName);

        // Get the Driver instance
        String url = "jdbc:mysql://a/b";
        Driver driver = DriverManager.getDriver(url);
   
        // Get available properties
        DriverPropertyInfo[] info = driver.getPropertyInfo(url, null);
        for (int i=0; i<info.length; i++) {
            // Get name of property
            String name = info[i].name;
   
            // Is property value required?
            boolean isRequired = info[i].required;
   
            // Get current value
            String value = info[i].value;
   
            // Get description of property
            String desc = info[i].description;
   
            // Get possible choices for property; if null, value can be any string
            String[] choices = info[i].choices;
        }
    } catch (ClassNotFoundException e) {
       // Could not find the database driver
    } catch (SQLException e) {
    }

Here's the property values for the MySql driver:
    Name(isRequired): Description
        default: default value
        choices: ...
   
    HOST(true): Hostname of MySQL Server
        default: a
   
    PORT(false): Port number of MySQL Server
        default: 3306
   
    DBNAME(false): Database name
        default: b
   
    user(true): Username to authenticate as
        default: null
   
    password(true): Password to use for authentication
        default: null
   
    autoReconnect(false): Should the driver try to re-establish bad connections?
        default: false
        choices: true, false
   
    maxReconnects(false): Maximum number of reconnects to attempt if autoReconnect is true
        default: 3
   
    initialTimeout(false): Initial timeout (seconds) to wait between failed connections
        default: 2



e234. Listing All Loaded JDBC Drivers
This example lists all loaded JDBC drivers and gets information about each one.
    List drivers = Collections.list(DriverManager.getDrivers());
    for (int i=0; i<drivers.size(); i++) {
        Driver driver = (Driver)drivers.get(i);
   
        // Get name of driver
        String name = driver.getClass().getName();
   
        // Get version info
        int majorVersion = driver.getMajorVersion();
        int minorVersion = driver.getMinorVersion();
        boolean isJdbcCompliant = driver.jdbcCompliant();
    }


 

No comments:

Post a Comment