Java Code Examples for java.sql.Connection.getClass()

The following are Jave code examples for showing how to use getClass() of the java.sql.Connection class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
+ Save this method
Example 1
Project: incubator-netbeans   File: ErrorPositionExtractor.java   View Source Code Vote up 6 votes
/**
 * Extract location information for Informix DB.
 *
 * <p>
 * For Informix the location information is not present in the exception
 * itself. It has to be extracted from the connection.</p>
 *
 * <p>
 * In this case the connection is accessed via reflection to call the
 * corresponding method.</p>
 *
 * <p>
 * In case connection gets wrapped later it needs to be unwrapped here.</p>
 */
private static int extractErrorPositionForInformix(Connection con, Statement stmt, Throwable ex, String sql) {
    // try to get exact position from exception message
    if (ex == null) {
        return -1;
    }

    Class connectionClass = con.getClass();
    if (connectionClass.getName().startsWith("com.informix.jdbc")) {
        try {
            Method getSQLStatementOffset = connectionClass.getMethod("getSQLStatementOffset");
            int column = (Integer) getSQLStatementOffset.invoke(con);
            if (column <= 0) {
                return -1;
            } else {
                return column - 1;
            }
        } catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException innerEx) {
            LOG.log(Level.FINE, "Failed to extract informix error location", innerEx);
            return -1;
        }
    } else {
        return -1;
    }
}