Whole document tree
    

Whole document tree

[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
Copyright © 1999 Sun Microsystems, Inc. All rights reserved.