CheckJDBCInstallation.java Source code

Java tutorial

Introduction

Here is the source code for CheckJDBCInstallation.java

Source

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