- All Superinterfaces:
Field<T>,FieldOrConstraint,FieldOrRow,FieldOrRowOrSelect,GroupField,Named,OrderField<T>,ParamOrVariable<T>,QueryPart,SelectField<T>,SelectFieldOrAsterisk,Serializable,TableElement,Typed<T>
A lot of jOOQ API accepts user input values, such as for example when
creating a Condition using Field.eq(Object), where a column
expression is being compared with a value.
Behind the scenes, jOOQ wraps the value in a bind value expression using
DSL.val(Object). The generated SQL of such an expression depends on
things like Settings.getStatementType() or ParamType being
passed to configurations or AttachableQueryPart.getSQL(ParamType) calls, etc. By
default, a parameter marker ? is generated.
Users can create parameters explicitly using DSL API, which is useful
in a few cases where the value cannot be passed to jOOQ directly, e.g.
- When the value is at the left hand side of an operator
- When
Fieldreferences andParamvalues are mixed
Example:
// Assuming import static org.jooq.impl.DSL.*;
// The bind value is the first operand of an expression, in case of which it
// needs to be wrapped in a Param explicitly
using(configuration)
.select()
.from(RENTALS)
.where(val(LocalDateTime.now()).between(RENTALS.RENTAL_DATE).and(RENTALS.DUE_DATE))
.fetch();
// The bind value is mixed with other types of Field expressions in a statement
using(configuration)
.insertInto(ACTOR)
.columns(ACTOR.FIRST_NAME, ACTOR.LAST_NAME, ACTOR.LAST_UPDATE)
.values(val("John"), val("Doe"), currentTimestamp())
.execute();
Instances can be created using DSL.param(String, Object),
DSL.val(Object), DSL.inline(Object) and respective overloads.
- Author:
- Lukas Eder
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionboolean$inline()Experimental query object model accessor method, see alsoQOM.$inline(boolean inline) Experimental query object model accessor method, see alsoQOM.$value()Experimental query object model accessor method, see alsoQOM.Experimental query object model accessor method, see alsoQOM.@NotNull ParamModeThe parameter mode.@Nullable StringThe parameter name.@NotNull ParamTypeThe parameter type.getValue()Get the parameter's underlying value.booleanisInline()A flag on the bind value to force it to be inlined in rendered SQLvoidsetConverted(Object value) Deprecated, for removal: This API element is subject to removal in a future version.voidsetInline(boolean inline) Deprecated, for removal: This API element is subject to removal in a future version.- 3.8.0 - [#4991] In jOOQ 4.0,Paramwill be made immutable.voidDeprecated, for removal: This API element is subject to removal in a future version.- 3.8.0 - [#4991] In jOOQ 4.0,Paramwill be made immutable.Methods inherited from interface org.jooq.Field
abs, acos, add, add, as, as, as, as, asc, ascii, asin, atan, atan2, atan2, avg, avgOver, between, between, between, between, betweenSymmetric, betweenSymmetric, betweenSymmetric, betweenSymmetric, bitAnd, bitAnd, bitLength, bitNand, bitNand, bitNor, bitNor, bitNot, bitOr, bitOr, bitXNor, bitXNor, bitXor, bitXor, cast, cast, cast, ceil, changed, charLength, coalesce, coalesce, coerce, coerce, coerce, collate, collate, collate, comment, comment, compare, compare, compare, compare, concat, concat, concat, contains, contains, containsIgnoreCase, containsIgnoreCase, convert, convert, convert, convertFrom, convertFrom, convertTo, convertTo, cos, cosh, cot, coth, count, countDistinct, countOver, decode, decode, decode, decode, deg, desc, div, div, divide, divide, endsWith, endsWith, endsWithIgnoreCase, endsWithIgnoreCase, eq, eq, eq, eq, equal, equal, equal, equal, equalIgnoreCase, equalIgnoreCase, equals, exp, extract, field, firstValue, floor, from, ge, ge, ge, ge, get, getComment, getName, getValue, greaterOrEqual, greaterOrEqual, greaterOrEqual, greaterOrEqual, greaterThan, greaterThan, greaterThan, greaterThan, greatest, greatest, gt, gt, gt, gt, in, in, in, in, in, isDistinctFrom, isDistinctFrom, isDistinctFrom, isDocument, isFalse, isJson, isNotDistinctFrom, isNotDistinctFrom, isNotDistinctFrom, isNotDocument, isNotJson, isNotNull, isNull, isTrue, lag, lag, lag, lag, lastValue, le, le, le, le, lead, lead, lead, lead, least, least, length, lessOrEqual, lessOrEqual, lessOrEqual, lessOrEqual, lessThan, lessThan, lessThan, lessThan, like, like, like, like, like, likeIgnoreCase, likeIgnoreCase, likeIgnoreCase, likeIgnoreCase, likeRegex, likeRegex, ln, log, lower, lpad, lpad, lpad, lpad, lt, lt, lt, lt, ltrim, max, maxOver, median, min, minOver, minus, minus, mod, mod, modulo, modulo, mul, mul, multiply, multiply, ne, ne, ne, ne, neg, notBetween, notBetween, notBetween, notBetween, notBetweenSymmetric, notBetweenSymmetric, notBetweenSymmetric, notBetweenSymmetric, notContains, notContains, notContainsIgnoreCase, notContainsIgnoreCase, notEqual, notEqual, notEqual, notEqual, notEqualIgnoreCase, notEqualIgnoreCase, notIn, notIn, notIn, notIn, notIn, notLike, notLike, notLike, notLike, notLike, notLikeIgnoreCase, notLikeIgnoreCase, notLikeIgnoreCase, notLikeIgnoreCase, notLikeRegex, notLikeRegex, notSimilarTo, notSimilarTo, notSimilarTo, notSimilarTo, notSimilarTo, nullif, nullif, nullsFirst, nullsLast, nvl, nvl, nvl2, nvl2, octetLength, original, plus, plus, plus, position, position, pow, pow, power, power, rad, rem, rem, repeat, repeat, replace, replace, replace, replace, reset, round, round, rpad, rpad, rpad, rpad, rtrim, shl, shl, shr, shr, sign, similarTo, similarTo, similarTo, similarTo, similarTo, sin, sinh, sort, sort, sortAsc, sortAsc, sortDefault, sortDesc, sortDesc, sqrt, startsWith, startsWith, startsWithIgnoreCase, startsWithIgnoreCase, stddevPop, stddevPopOver, stddevSamp, stddevSampOver, sub, sub, substring, substring, substring, substring, subtract, subtract, sum, sumOver, tan, tanh, times, times, trim, unaryMinus, unaryPlus, upper, varPop, varPopOver, varSamp, varSampOverMethods inherited from interface org.jooq.Named
$name, getCommentPart, getQualifiedName, getUnqualifiedNameMethods inherited from interface org.jooq.QueryPart
$replace, $replace, $traverse, $traverse, hashCode, toStringMethods inherited from interface org.jooq.Typed
$dataType, getBinding, getConverter, getDataType, getDataType, getType
-
Method Details
-
getParamName
The parameter name. This name is useful for two things:- Named parameters in frameworks that support them, such as Spring's
JdbcTemplate - Accessing the parameter from the
QueryAPI, withAttachableQueryPart.getParam(String),AttachableQueryPart.getParams()
- Named parameters in frameworks that support them, such as Spring's
-
getValue
Get the parameter's underlying value. This returnsnullif no value has been set yet. -
setValue
Deprecated, for removal: This API element is subject to removal in a future version.Set the parameter's underlying value. This is the same assetConverted(Object), but ensures generic type-safety.- See Also:
-
setConverted
Deprecated, for removal: This API element is subject to removal in a future version.- Throws:
DataTypeException- Ifvaluecannot be converted into this parameter's data type.
-
setInline
Deprecated, for removal: This API element is subject to removal in a future version.A flag on the bind value to force it to be inlined in rendered SQL -
isInline
boolean isInline()A flag on the bind value to force it to be inlined in rendered SQL -
getParamType
The parameter type. -
getParamMode
The parameter mode. -
$value
Experimental query object model accessor method, see alsoQOM. Subject to change in future jOOQ versions, use at your own risk. -
$value
Experimental query object model accessor method, see alsoQOM. Subject to change in future jOOQ versions, use at your own risk. -
$inline
@Experimental boolean $inline()Experimental query object model accessor method, see alsoQOM. Subject to change in future jOOQ versions, use at your own risk. -
$inline
Experimental query object model accessor method, see alsoQOM. Subject to change in future jOOQ versions, use at your own risk.
-
Paramwill be made immutable.