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();
}
}
}
}
|