src/main/java/org/vibur/dbcp/proxy/StatementInvocationHandler.java
@Override
    public Object on(Statement proxy, Method method, Object[] args, String sqlQuery, List<Object[]> sqlQueryParams,
                     StatementProceedingPoint proceed) throws SQLException {

        if (++hookIdx < executionHooks.length) { // invoke the next statement execution hook, if any
            return executionHooks[hookIdx].on(proxy, method, args, sqlQuery, sqlQueryParams, this);
        }

        return doProcessExecute(proxy, method, args);
    }
@Override
    public Object on(Statement proxy, Method method, Object[] args, String sqlQuery, List<Object[]> sqlQueryParams,
                     StatementProceedingPoint proceed) throws SQLException {

        if (++hookIdx < executionHooks.length) { // invoke the next statement execution hook, if any
            return executionHooks[hookIdx].on(proxy, method, args, sqlQuery, sqlQueryParams, this);
        }

        return doProcessExecute(proxy, method, args);
    }
////// The StatementProceedingPoint implementation: ////////