Sun Java Solaris Communities My SDN Account Join SDN
 
Tutorials & Code Camps

jGuru: Help: Generalizing Connection Information - Batch

 


[Exercise | API Docs | Short Course| Exercises]

Help is available for each task.

    Task 1

    Given the following ConnectU.properties file:

    #PropertiesResourceBundle for Connection Properties
    CSDriver=COM.cloudscape.core.RmiJdbcDriver
    CSURL=jdbc:cloudscape:rmi:jGuru
    CSUserID=sa
    CSPassword=admin
    

    Set up String variables to access the keys and to hold the returned values. Also set up Strings 1) containing the name of the properties file - ConnectU, and 2) containing a SELECT statement to get the single row having MoJava in its Type column.

    Insert the following code:

      String sDriver,
             sDriverKey = "CSDriver",
             sPassword,
             sPasswordKey ="CSPassword",
             sQuery = 
              "SELECT * FROM JJJJData " +
              "WHERE Type = 'MoJava'",
             srbName = "ConnectU",
             sURL,
             sURLKey="CSURL",
             sUserID,
             sUserIDKey = "CSUserID";
    

    Task 2

    Access the ResourceBundle and retrieve the driver name, databaseURL, userID and password.

        try  // get the PropertyResourceBundle
        {
          rbConnect = ResourceBundle.getBundle( srbName );
    
          sDriver   = rbConnect.getString( sDriverKey );
          sPassword = rbConnect.getString( sPasswordKey );
          sURL      = rbConnect.getString( sURLKey );
          sUserID = rbConnect.getString( sUserIDKey );
        }
        catch( MissingResourceException mre )
        {
          System.err.println(
                      "ResourceBundle problem for " + 
                       srbName + ", program ends." );
          System.err.println("Specific error: " + 
                              mre.getMessage() );
          return; // exit on error
        }
    

    Task 3

    Load the driver.

            Class.forName( sDriver ).newInstance();
    

    Task 4

    Get a Connection; get a DatabaseMetaData object using dbmd and report the DBMS and driver name and version; create a Statement.

          con = DriverManager.getConnection ( sURL,
                                              sUserID,
                                              sPassword);
    
          DatabaseMetaData dbmd = con.getMetaData();
          System.out.println(
            "DBMS: " + 
             dbmd.getDatabaseProductName()  + ", " +
             dbmd.getDatabaseProductVersion() );
    
          System.out.println(
            "Driver: " + 
             dbmd.getDriverName()  + ", " +
             dbmd.getDriverVersion() );
    
          stmt = con.createStatement();
    

    Task 5

    Execute the query. If data was returned, get the ResultSetMetadata ColumnName, ColumnTypeName and ColumnClassName and report them for each column in the ResultSet.

          rs = stmt.executeQuery( sQuery );
    
          if( rs.next() ) // get first row 
          {               // if data was returned
            rsmd = rs.getMetaData();
            System.out.println();
    
            int i = rsmd.getColumnCount();
    
            for( int ndx = 1; ndx <= i; ndx++ )
            {
              System.out.println(
               "Column Name: " + 
                rsmd.getColumnName( ndx ) + "." );
              System.out.println(
               "Column SQL Type: " + 
                rsmd.getColumnTypeName( ndx ) + "." );
              System.out.println(
               "Column Java Class Equivalent: " + 
                rsmd.getColumnClassName( ndx ) + ".\n" );
            }
    
          } // end if( result.next() )
    
    

Copyright 1996-2000 jGuru.com. All Rights Reserved.