/*********************************************************************** ** ** File: /afs/ir/users/c/j/cjurney/public/cs145/SQLUtil.java ** ** Author: Craig Jurney, ITSS ** ** Written: April, 2000 ** ** Classes: SQLUtil ** ** Description: Simple utility class used for reporting SQLExceptions/SQLWarnings ** and driver/database metadata. ** ** Maintenance: ** 04/10/00 cjurney Initial version ** **---------------------------------------------------------------------- ** Copyright (c) 2000 Board of Trustees, Leland Stanford Jr. University ************************************************************************/ import java.sql.*; public class SQLUtil { /** * This method displays all columns and rows in the given result set. * @param rs The result set to be displayed. * @return None. * @exception SQLException. */ static public void displayResultSet(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("\n-------------------------------------"); // Display data, fetching until end of the result set while (rs.next()) { // 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 } } /** * This method checks for warnings and displays the warnings' information. * Note that multiple warning objects could be chained together. * Very similar to printSQLExceptions. * @param warn The list of SQLWarnings. * @return true if a warning existed, false otherwise. * @exception SQLException. * @see Utils#printSQLExceptions * @exception SQLException. */ static public boolean printSQLWarnings(SQLWarning warn) throws SQLException { boolean rc = false; 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; } /** * This method checks for exceptions and displays error information. * Note that multiple exception objects could be chained together. * Very similar to printSQLWarnings. * @param warn The list of SQLException. * @return true if an exception existed, false otherwise. * @see Utils#printSQLWarnings */ static public boolean printSQLExceptions(SQLException ex) { boolean rc = false; if (ex != null) { System.out.println("\n*** SQLException caught ***\n"); rc = true; while (ex != null) { System.out.println("SQLState: " + ex.getSQLState()); System.out.println("Message: " + ex.getMessage()); System.out.println("Vendor: " + ex.getErrorCode()); System.out.println(""); ex = ex.getNextException(); } } return rc; } static public boolean printSQLExceptions(String method, SQLException ex) { boolean rc = false; if (ex != null) { System.out.println("\n*** SQLException caught in " + method + " ***\n"); rc = true; while (ex != null) { System.out.println("SQLState: " + ex.getSQLState()); System.out.println("Message: " + ex.getMessage()); System.out.println("Vendor: " + ex.getErrorCode()); System.out.println(""); ex = ex.getNextException(); } } return rc; } /** * This method displays driver name and version. * @param con The current connection. * @return None. * @exception SQLException. */ static public void printDriverInfo(Connection con) throws SQLException { // Get the DatabaseMetaData object and display // some information about the connection DatabaseMetaData dma = con.getMetaData(); System.out.println("Database\t" + dma.getDatabaseProductVersion()); System.out.println("Driver\t\t" + dma.getDriverVersion()); System.out.println("URL\t\t" + dma.getURL() + ", user '" + dma.getUserName() + "'"); System.out.println("-------------------------------------"); } }