Mega Code Archive

 
Categories / Java / Database SQL JDBC
 

Verify database setup

import java.sql.*; public class CheckJDBCInstallation {   /**    * Test Validity of JDBC Installation    *     * @param conn    *          a JDBC connection object    * @param dbVendor    *          db vendor {"oracle", "mysql" }    * @return true if a given connection object is a valid one; otherwise return    *         false.    * @throws Exception    *           Failed to determine if a given connection is valid.    */   public static boolean isValidConnection(Connection conn, String dbVendor) throws Exception {     if (conn == null) {       return false;     }     if (conn.isClosed()) {       return false;     }     // depends on the vendor of the database:     //     // for MySQL database:     // you may use the connection object     // with query of "select 1"; if the     // query returns the result, then it     // is a valid Connection object.     //     // for Oracle database:     // you may use the Connection object     // with query of "select 1 from dual"; if     // the query returns the result, then it     // is a valid Connection object.     if (dbVendor.equalsIgnoreCase("mysql")) {       return testConnection(conn, "select 1");     } else if (dbVendor.equalsIgnoreCase("oracle")) {       return testConnection(conn, "select 1 from dual");     } else {       return false;     }   }   /**    * Test Validity of a Connection    *     * @param conn    *          a JDBC connection object    * @param query    *          a sql query to test against db connection    * @return true if a given connection object is a valid one; otherwise return    *         false.    */   public static boolean testConnection(Connection conn, String query) {     ResultSet rs = null;     Statement stmt = null;     try {       stmt = conn.createStatement();       if (stmt == null) {         return false;       }       rs = stmt.executeQuery(query);       if (rs == null) {         return false;       }       // connection object is valid: you were able to       // connect to the database and return something useful.       if (rs.next()) {         return true;       }       // there is no hope any more for the validity       // of the Connection object       return false;     } catch (Exception e) {       // something went wrong: connection is bad       return false;     } finally {       // close database resources       try {         rs.close();         stmt.close();               } catch (SQLException e) {         e.printStackTrace();       }     }   }   public static void main(String[] args) {     Connection conn = null;     try {       String dbVendor = args[0];       // get connection to a database       System.out.println("dbVendor=" + dbVendor);       System.out.println("conn=" + conn);       System.out.println("valid connection = " + isValidConnection(conn, dbVendor));     } catch (Exception e) {       // handle the exception       e.printStackTrace();       System.exit(1);     } finally {       // release database resources       try {         conn.close();       } catch (SQLException e) {         e.printStackTrace();       }     }   } }