@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 ) { return executionHooks [ hookIdx ] . on ( proxy , method , args , sqlQuery , sqlQueryParams , this ) ; } return doProcessExecute ( proxy , method , args ) ; }
////// The StatementProceedingPoint implementation: ////////