code: public <T> T execute(AbstractXmlInputOutputHandler<T> inputHandler) throws SQLException {
          T result = null;
  
          Overrider queryOverride = inputHandler.getOverrides();
  
          String operationType = (String) queryOverride.getOverride(XmlParameters.operationType);
  
          if (queryOverride.hasOverride(XmlParameters.generateKeys) == true) {
              this.overrideOnce(MjdbcConstants.OVERRIDE_INT_GET_GENERATED_KEYS, Boolean.valueOf((String) queryOverride.getOverride(XmlParameters.generateKeys)));
          }
  
          if (queryOverride.hasOverride(XmlParameters.generateKeysColumns) == true) {
              this.overrideOnce(MjdbcConstants.OVERRIDE_GENERATED_COLUMN_NAMES, queryOverride.getOverride(XmlParameters.generateKeysColumns));
          }
  
          if (queryOverride.hasOverride(XmlParameters.controlParamCount) == true) {
              this.overrideOnce(MjdbcConstants.OVERRIDE_CONTROL_PARAM_COUNT, Boolean.valueOf((String) queryOverride.getOverride(XmlParameters.controlParamCount)));
          }
  
          if ("update".equals(operationType) == true) {
              result = update(inputHandler, inputHandler);
          } else if ("query".equals(operationType) == true) {
              result = query(inputHandler, inputHandler);
          } else {
              throw new MjdbcRuntimeException("Received operation is not supported: " + operationType);
          }
  
          return result;
      }
docs: {@inheritDoc}