public class BlobBinding extends java.lang.Object implements Binding<byte[],byte[]>
Blob to at the
JDBC level.
This is useful for workarounds for bugs in Oracle, like ORA-01461: can bind a LONG value only for insert into a LONG column (see [#4091])
| Constructor and Description |
|---|
BlobBinding() |
| Modifier and Type | Method and Description |
|---|---|
Converter<byte[],byte[]> |
converter()
A converter that can convert between the database type and the custom
type.
|
void |
get(BindingGetResultSetContext<byte[]> ctx)
Get a
ResultSet's OUT value. |
void |
get(BindingGetSQLInputContext<byte[]> ctx)
Get a
SQLInput's OUT value. |
void |
get(BindingGetStatementContext<byte[]> ctx)
Get a
CallableStatement's OUT value. |
void |
register(BindingRegisterContext<byte[]> ctx)
Register a
CallableStatement's OUT parameter. |
void |
set(BindingSetSQLOutputContext<byte[]> ctx)
Set a
SQLOutput's IN parameter. |
void |
set(BindingSetStatementContext<byte[]> ctx)
Set a
PreparedStatement's IN parameter. |
void |
sql(BindingSQLContext<byte[]> ctx)
Generate SQL code for the bind variable.
|
public final Converter<byte[],byte[]> converter()
Bindingpublic final void sql(BindingSQLContext<byte[]> ctx) throws java.sql.SQLException
Binding
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
Binding.sql(BindingSQLContext) and
Binding.set(BindingSetStatementContext), i.e. when bind variables are
inlined, then they must not be bound to the PreparedStatement in
Binding.set(BindingSetStatementContext)
sql in interface Binding<byte[],byte[]>ctx - The context object containing all argument objects.java.sql.SQLException - Implementations are allowed to pass on all
SQLExceptions to the caller to be wrapped in
DataAccessExceptions.public final void register(BindingRegisterContext<byte[]> ctx) throws java.sql.SQLException
BindingCallableStatement's OUT parameter.register in interface Binding<byte[],byte[]>ctx - The context object containing all argument objects.java.sql.SQLException - Implementations are allowed to pass on all
SQLExceptions to the caller to be wrapped in
DataAccessExceptions.public final void set(BindingSetStatementContext<byte[]> ctx) throws java.sql.SQLException
BindingPreparedStatement's IN parameter.set in interface Binding<byte[],byte[]>ctx - The context object containing all argument objects.java.sql.SQLException - Implementations are allowed to pass on all
SQLExceptions to the caller to be wrapped in
DataAccessExceptions.public final void set(BindingSetSQLOutputContext<byte[]> ctx) throws java.sql.SQLException
BindingSQLOutput's IN parameter.set in interface Binding<byte[],byte[]>ctx - The context object containing all argument objects.java.sql.SQLException - Implementations are allowed to pass on all
SQLExceptions to the caller to be wrapped in
DataAccessExceptions.public final void get(BindingGetResultSetContext<byte[]> ctx) throws java.sql.SQLException
BindingResultSet's OUT value.
Implementations are expected to produce a value by calling
BindingGetResultSetContext.value(Object), passing the resulting
value to the method.
get in interface Binding<byte[],byte[]>ctx - The context object containing all argument objects.java.sql.SQLException - Implementations are allowed to pass on all
SQLExceptions to the caller to be wrapped in
DataAccessExceptions.public final void get(BindingGetStatementContext<byte[]> ctx) throws java.sql.SQLException
BindingCallableStatement's OUT value.
Implementations are expected to produce a value by calling
BindingGetStatementContext.value(Object), passing the resulting
value to the method.
get in interface Binding<byte[],byte[]>ctx - The context object containing all argument objects.java.sql.SQLException - Implementations are allowed to pass on all
SQLExceptions to the caller to be wrapped in
DataAccessExceptions.public final void get(BindingGetSQLInputContext<byte[]> ctx) throws java.sql.SQLException
BindingSQLInput's OUT value.
Implementations are expected to produce a value by calling
BindingGetSQLInputContext.value(Object), passing the resulting
value to the method.
get in interface Binding<byte[],byte[]>ctx - The context object containing all argument objects.java.sql.SQLException - Implementations are allowed to pass on all
SQLExceptions to the caller to be wrapped in
DataAccessExceptions.Copyright © 2015. All Rights Reserved.