Package org.jooq

Interface Parameter<T>

  • Type Parameters:
    T - The parameter type
    All Superinterfaces:
    Named, QueryPart, java.io.Serializable

    public interface Parameter<T>
    extends Named
    A parameter to a stored procedure or function.

    Instances of this type cannot be created directly. They are available from generated code.

    Author:
    Lukas Eder
    • Method Detail

      • getType

        java.lang.Class<T> getType()
        The Java type of the parameter.
      • getConverter

        Converter<?,​T> getConverter()
        The parameter's underlying Converter.

        By default, all parameters reference an identity-converter Converter<T, T>. Custom data types may be obtained by a custom Converter placed on the generated Parameter.

      • getBinding

        Binding<?,​T> getBinding()
        The parameter's underlying Binding.
      • getDataType

        DataType<T> getDataType()
        The type of this parameter (might not be dialect-specific)
      • getDataType

        DataType<T> getDataType​(Configuration configuration)
        The dialect-specific type of this parameter
      • isDefaulted

        boolean isDefaulted()
        Whether this parameter has a default value

        Procedures and functions with defaulted parameters behave slightly different from ones without defaulted parameters. In PL/SQL and other procedural languages, it is possible to pass parameters by name, reordering names and omitting defaulted parameters:

         CREATE PROCEDURE MY_PROCEDURE (P_DEFAULTED IN NUMBER := 0
                                        P_MANDATORY IN NUMBER);
        
         -- The above procedure can be called as such:
         BEGIN
           -- Assign parameters by index
           MY_PROCEDURE(1, 2);
        
           -- Assign parameters by name
           MY_PROCEDURE(P_DEFAULTED => 1,
                        P_MANDATORY => 2);
        
           -- Omitting defaulted parameters
           MY_PROCEDURE(P_MANDATORY => 2);
         END;
         

        If a procedure has defaulted parameters, jOOQ binds them by name, rather than by index.

        Currently, this is only supported for Oracle 11g

      • isUnnamed

        boolean isUnnamed()
        Whether this parameter has a name or not.

        Some databases (e.g. SQLDialect.POSTGRES) allow for using unnamed parameters. In this case, Named.getName() will return a synthetic name created from the parameter index.