[Top] [Prev] [Next]

Appendix B - Sample Code

// The following code can be used as a template.  Simply
// substitute the appropriate url, login, and password, and then substitute the
// SQL statement you want to send to the database.



//----------------------------------------------------------------------------
//
// Module:    SimpleSelect.java
//
// Description:       Test program for ODBC API interface.  This java application
// will connect to a JDBC driver, issue a select statement
// and display all result columns and rows
//
// Product:   JDBC to ODBC Bridge
//
// Author:    Karl Moss
//
// Date:      February, 1996
//
// Copyright: 1990-1996 INTERSOLV, Inc.
// This software contains confidential and proprietary
// information of INTERSOLV, Inc.
//----------------------------------------------------------------------------


import java.net.URL;
import java.sql.*;

class SimpleSelect {


public static void main (String args[]) {
      String url   = "jdbc:odbc:my-dsn";
      String query = "SELECT * FROM emp"; 

      try {

              // Load the jdbc-odbc bridge driver

              Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");

              DriverManager.setLogStream(System.out);

              // Attempt to connect to a driver.  Each one
              // of the registered drivers will be loaded until
              // one is found that can process this URL

              Connection con = DriverManager.getConnection (
                      url, "my-user", "my-passwd");

              // If we were unable to connect, an exception
              // would have been thrown.  So, if we get here,
              // we are successfully connected to the URL

              // Check for, and display and warnings generated
              // by the connect.

              checkForWarning (con.getWarnings ());

              // Get the DatabaseMetaData object and display
              // some information about the connection

              DatabaseMetaData dma = con.getMetaData ();

              System.out.println("\nConnected to " + dma.getURL());
              System.out.println("Driver       " + 
                      dma.getDriverName());
              System.out.println("Version      " +
                      dma.getDriverVersion());
              System.out.println("");

              // Create a Statement object so we can submit
              // SQL statements to the driver

              Statement stmt = con.createStatement ();

              // Submit a query, creating a ResultSet object

              ResultSet rs = stmt.executeQuery (query);

              // Display all columns and rows from the result set

              dispResultSet (rs);

              // Close the result set

              rs.close();

              // Close the statement

              stmt.close();

              // Close the connection

              con.close();
      }
      catch (SQLException ex) {

              // A SQLException was generated.  Catch it and
              // display the error information.  Note that there
              // could be multiple error objects chained
              // together

      System.out.println ("\n*** SQLException caught ***\n");

      while (ex != null) {
              System.out.println ("SQLState: " +
                              ex.getSQLState ());
              System.out.println ("Message:  " + ex.getMessage ());
              System.out.println ("Vendor:   " +
                              ex.getErrorCode ());
              ex = ex.getNextException ();
              System.out.println ("");
              }
      }
      catch (java.lang.Exception ex) {

              // Got some other type of exception.  Dump it.

              ex.printStackTrace ();
      }
}

//-------------------------------------------------------------------
// checkForWarning
// Checks for and displays warnings.  Returns true if a warning
// existed
//-------------------------------------------------------------------

private static boolean checkForWarning (SQLWarning warn)      
              throws SQLException  {
      boolean rc = false;

      // If a SQLWarning object was given, display the
      // warning messages.  Note that there could be
      // multiple warnings chained together

      if (warn != null) {
              System.out.println ("\n *** Warning ***\n");
              rc = true;
              while (warn != null) {
                      System.out.println ("SQLState: " +
                              warn.getSQLState ());
                      System.out.println ("Message:  " +
                              warn.getMessage ());
                      System.out.println ("Vendor:   " +
                              warn.getErrorCode ());
                      System.out.println ("");
                      warn = warn.getNextWarning ();
              }
      }
      return rc;
}

//-------------------------------------------------------------------
// dispResultSet
// Displays all columns and rows in the given result set
//-------------------------------------------------------------------

private static void dispResultSet (ResultSet rs)
      throws SQLException
{
      int i;

      // Get the ResultSetMetaData.  This will be used for
      // the column headings

      ResultSetMetaData rsmd = rs.getMetaData ();

      // Get the number of columns in the result set

      int numCols = rsmd.getColumnCount ();

      // Display column headings

      for (i=1; i<=numCols; i++) {
              if (i > 1) System.out.print(",");
              System.out.print(rsmd.getColumnLabel(i));
      }
      System.out.println("");
      
      // Display data, fetching until end of the result set

      boolean more = rs.next ();
      while (more) {

              // Loop through each column, getting the
              // column data and displaying

              for (i=1; i<=numCols; i++) {
                      if (i > 1) System.out.print(",");
                      System.out.print(rs.getString(i));
              }
              System.out.println("");

              // Fetch the next result set row

              more = rs.next ();
      }
}

}


[Top] [Prev] [Next]
jdbc@wombat.eng.sun.com or jdbc-odbc@wombat.eng.sun.com

Oracle and/or its affiliates
Java Technology

Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.

Contact Us