接口 LobCreator
- 所有超级接口:
AutoCloseable
,Closeable
public interface LobCreator extends Closeable
Interface that abstracts potentially database-specific creation of large binary fields and large text fields. Does not work withjava.sql.Blob
andjava.sql.Clob
instances in the API, as some JDBC drivers do not support these types as such.The LOB creation part is where
LobHandler
implementations usually differ. Possible strategies include usage ofPreparedStatement.setBinaryStream/setCharacterStream
but alsoPreparedStatement.setBlob/setClob
with either a stream argument (requires JDBC 4.0) orjava.sql.Blob/Clob
wrapper objects.A LobCreator represents a session for creating BLOBs: It is not thread-safe and needs to be instantiated for each statement execution or for each transaction. Each LobCreator needs to be closed after completion.
For convenient working with a PreparedStatement and a LobCreator, consider using
JdbcTemplate
with anAbstractLobCreatingPreparedStatementCallback
implementation. See the latter's javadoc for details.- 从以下版本开始:
- 04.12.2003
- 作者:
- Juergen Hoeller
- 另请参阅:
close()
,LobHandler.getLobCreator()
,DefaultLobHandler.DefaultLobCreator
,PreparedStatement.setBlob(int, java.sql.Blob)
,PreparedStatement.setClob(int, java.sql.Clob)
,PreparedStatement.setBytes(int, byte[])
,PreparedStatement.setBinaryStream(int, java.io.InputStream, int)
,PreparedStatement.setString(int, java.lang.String)
,PreparedStatement.setAsciiStream(int, java.io.InputStream, int)
,PreparedStatement.setCharacterStream(int, java.io.Reader, int)
方法概要
所有方法 实例方法 抽象方法 修饰符和类型 方法 说明 void
close()
Close this LobCreator session and free its temporarily created BLOBs and CLOBs.void
setBlobAsBinaryStream(PreparedStatement ps, int paramIndex, InputStream contentStream, int contentLength)
Set the given content as binary stream on the given statement, using the given parameter index.void
setBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content)
Set the given content as bytes on the given statement, using the given parameter index.void
setClobAsAsciiStream(PreparedStatement ps, int paramIndex, InputStream asciiStream, int contentLength)
Set the given content as ASCII stream on the given statement, using the given parameter index.void
setClobAsCharacterStream(PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength)
Set the given content as character stream on the given statement, using the given parameter index.void
setClobAsString(PreparedStatement ps, int paramIndex, String content)
Set the given content as String on the given statement, using the given parameter index.
方法详细资料
setBlobAsBytes
void setBlobAsBytes(PreparedStatement ps, int paramIndex, @Nullable byte[] content) throws SQLException
Set the given content as bytes on the given statement, using the given parameter index. Might simply invokePreparedStatement.setBytes
or create a Blob instance for it, depending on the database and driver.- 参数:
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usecontent
- the content as byte array, ornull
for SQL NULL- 抛出:
SQLException
- if thrown by JDBC methods- 另请参阅:
PreparedStatement.setBytes(int, byte[])
setBlobAsBinaryStream
void setBlobAsBinaryStream(PreparedStatement ps, int paramIndex, @Nullable InputStream contentStream, int contentLength) throws SQLException
Set the given content as binary stream on the given statement, using the given parameter index. Might simply invokePreparedStatement.setBinaryStream
or create a Blob instance for it, depending on the database and driver.- 参数:
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usecontentStream
- the content as binary stream, ornull
for SQL NULL- 抛出:
SQLException
- if thrown by JDBC methods- 另请参阅:
PreparedStatement.setBinaryStream(int, java.io.InputStream, int)
setClobAsString
void setClobAsString(PreparedStatement ps, int paramIndex, @Nullable String content) throws SQLException
Set the given content as String on the given statement, using the given parameter index. Might simply invokePreparedStatement.setString
or create a Clob instance for it, depending on the database and driver.- 参数:
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usecontent
- the content as String, ornull
for SQL NULL- 抛出:
SQLException
- if thrown by JDBC methods- 另请参阅:
PreparedStatement.setBytes(int, byte[])
setClobAsAsciiStream
void setClobAsAsciiStream(PreparedStatement ps, int paramIndex, @Nullable InputStream asciiStream, int contentLength) throws SQLException
Set the given content as ASCII stream on the given statement, using the given parameter index. Might simply invokePreparedStatement.setAsciiStream
or create a Clob instance for it, depending on the database and driver.- 参数:
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to useasciiStream
- the content as ASCII stream, ornull
for SQL NULL- 抛出:
SQLException
- if thrown by JDBC methods- 另请参阅:
PreparedStatement.setAsciiStream(int, java.io.InputStream, int)
setClobAsCharacterStream
void setClobAsCharacterStream(PreparedStatement ps, int paramIndex, @Nullable Reader characterStream, int contentLength) throws SQLException
Set the given content as character stream on the given statement, using the given parameter index. Might simply invokePreparedStatement.setCharacterStream
or create a Clob instance for it, depending on the database and driver.- 参数:
ps
- the PreparedStatement to the set the content onparamIndex
- the parameter index to usecharacterStream
- the content as character stream, ornull
for SQL NULL- 抛出:
SQLException
- if thrown by JDBC methods- 另请参阅:
PreparedStatement.setCharacterStream(int, java.io.Reader, int)
close
void close()
Close this LobCreator session and free its temporarily created BLOBs and CLOBs. Will not need to do anything if using PreparedStatement's standard methods, but might be necessary to free database resources if using proprietary means.NOTE: Needs to be invoked after the involved PreparedStatements have been executed or the affected O/R mapping sessions have been flushed. Otherwise, the database resources for the temporary BLOBs might stay allocated.
- 指定者:
close
在接口中AutoCloseable
- 指定者:
close
在接口中Closeable