T - The database type - i.e. any type available from
            SQLDataTypeU - The user typepublic interface Binding<T,U> extends Serializable
 This SPI is used by jOOQ users to implement support for custom data types
 that would otherwise not be supported by jOOQ and/or JDBC. All of jOOQ's
 internal support for bind variable types is implemented in
 DefaultBinding.
| Modifier and Type | Method and Description | 
|---|---|
Converter<T,U> | 
converter()
A converter that can convert between the database type and the custom
 type. 
 | 
void | 
get(BindingGetResultSetContext<U> ctx)
Get a  
ResultSet's OUT value. | 
void | 
get(BindingGetSQLInputContext<U> ctx)
Get a  
SQLInput's OUT value. | 
void | 
get(BindingGetStatementContext<U> ctx)
Get a  
CallableStatement's OUT value. | 
void | 
register(BindingRegisterContext<U> ctx)
Register a  
CallableStatement's OUT parameter. | 
void | 
set(BindingSetSQLOutputContext<U> ctx)
Set a  
SQLOutput's IN parameter. | 
void | 
set(BindingSetStatementContext<U> ctx)
Set a  
PreparedStatement's IN parameter. | 
void | 
sql(BindingSQLContext<U> ctx)
Generate SQL code for the bind variable. 
 | 
Converter<T,U> converter()
void sql(BindingSQLContext<U> ctx) throws SQLException
 Implementations should generate SQL code onto
 BindingSQLContext.render(), given the context's bind variable
 located at BindingSQLContext.value(). Examples of such SQL code
 are:
 
"?": Default implementations can simply generate a
 question mark."123": Implementations may choose to inline bind
 variables to influence execution plan generation.RenderContext.paramType() contains information whether inlined
 bind variables are expected in the current context."CAST(? AS DATE)": Cast a database to a more specific
 type. This can be useful in databases like Oracle, which map both
 DATE and TIMESTAMP SQL types to
 Timestamp.RenderContext.castMode() may contain some hints about whether
 casting is suggested in the current context."?::json": Vendor-specific bind variables can be
 supported, e.g. SQLDialect.POSTGRES's JSON data type.
 Implementations must provide consistent behaviour between
 sql(BindingSQLContext) and
 set(BindingSetStatementContext), i.e. when bind variables are
 inlined, then they must not be bound to the PreparedStatement in
 set(BindingSetStatementContext)
ctx - The context object containing all argument objects.SQLException - Implementations are allowed to pass on all
             SQLExceptions to the caller to be wrapped in
             DataAccessExceptions.void register(BindingRegisterContext<U> ctx) throws SQLException
CallableStatement's OUT parameter.ctx - The context object containing all argument objects.SQLException - Implementations are allowed to pass on all
             SQLExceptions to the caller to be wrapped in
             DataAccessExceptions.void set(BindingSetStatementContext<U> ctx) throws SQLException
PreparedStatement's IN parameter.ctx - The context object containing all argument objects.SQLException - Implementations are allowed to pass on all
             SQLExceptions to the caller to be wrapped in
             DataAccessExceptions.void set(BindingSetSQLOutputContext<U> ctx) throws SQLException
SQLOutput's IN parameter.ctx - The context object containing all argument objects.SQLException - Implementations are allowed to pass on all
             SQLExceptions to the caller to be wrapped in
             DataAccessExceptions.void get(BindingGetResultSetContext<U> ctx) throws SQLException
ResultSet's OUT value.
 
 Implementations are expected to produce a value by calling
 BindingGetResultSetContext.value(Object), passing the resulting
 value to the method.
ctx - The context object containing all argument objects.SQLException - Implementations are allowed to pass on all
             SQLExceptions to the caller to be wrapped in
             DataAccessExceptions.void get(BindingGetStatementContext<U> ctx) throws SQLException
CallableStatement's OUT value.
 
 Implementations are expected to produce a value by calling
 BindingGetStatementContext.value(Object), passing the resulting
 value to the method.
ctx - The context object containing all argument objects.SQLException - Implementations are allowed to pass on all
             SQLExceptions to the caller to be wrapped in
             DataAccessExceptions.void get(BindingGetSQLInputContext<U> ctx) throws SQLException
SQLInput's OUT value.
 
 Implementations are expected to produce a value by calling
 BindingGetSQLInputContext.value(Object), passing the resulting
 value to the method.
ctx - The context object containing all argument objects.SQLException - Implementations are allowed to pass on all
             SQLExceptions to the caller to be wrapped in
             DataAccessExceptions.Copyright © 2015. All Rights Reserved.