-
- All Superinterfaces:
-
AutoCloseable
,Statement
,Wrapper
- All Known Subinterfaces:
-
CallableStatement
public interface PreparedStatement extends Statement
表示预编译SQL语句的对象。SQL语句已预编译并存储在
PreparedStatement
对象中。 然后,可以使用此对象多次有效地执行此语句。注意:setter方法(
setShort
,setString
,等等),用于设置IN参数值必须指定与所定义的SQL类型的输入参数的兼容的类型。 例如,如果IN参数具有SQL类型INTEGER
,则应使用方法setInt
。如果需要任意参数类型转换,则方法
setObject
应与目标SQL类型一起使用。在以下设置参数的示例中,
con
表示活动连接:PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?"); pstmt.setBigDecimal(1, 153833.00) pstmt.setInt(2, 110592)
- 从以下版本开始:
- 1.1
- 另请参见:
-
Connection.prepareStatement(java.lang.String)
,ResultSet
-
-
字段汇总
-
Fields declared in interface java.sql.Statement
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
-
-
方法摘要
所有方法 实例方法 抽象方法 Default Methods 弃用的方法 变量和类型 方法 描述 void
addBatch()
向此PreparedStatement
对象的一批命令添加一组参数。void
clearParameters()
立即清除当前参数值。boolean
execute()
在此PreparedStatement
对象中执行SQL语句,该对象可以是任何类型的SQL语句。default long
executeLargeUpdate()
执行在该SQL语句PreparedStatement
对象,它必须是一个SQL数据操纵语言(DML)语句,比如INSERT
,UPDATE
或DELETE
; 或者不返回任何内容的SQL语句,例如DDL语句。ResultSet
executeQuery()
执行此PreparedStatement
对象中的SQL查询,并返回查询生成的ResultSet
对象。int
executeUpdate()
执行在该SQL语句PreparedStatement
对象,它必须是一个SQL数据操纵语言(DML)语句,比如INSERT
,UPDATE
或DELETE
; 或者不返回任何内容的SQL语句,例如DDL语句。ResultSetMetaData
getMetaData()
检索ResultSetMetaData
对象,该对象包含有关在执行此PreparedStatement
对象时将返回的ResultSet
对象的列的信息。ParameterMetaData
getParameterMetaData()
检索此PreparedStatement
对象参数的数量,类型和属性。void
setArray(int parameterIndex, Array x)
将指定参数设置为给定的java.sql.Array
对象。void
setAsciiStream(int parameterIndex, InputStream x)
将指定参数设置为给定输入流。void
setAsciiStream(int parameterIndex, InputStream x, int length)
将指定参数设置为给定输入流,该输入流将具有指定的字节数。void
setAsciiStream(int parameterIndex, InputStream x, long length)
将指定参数设置为给定输入流,该输入流将具有指定的字节数。void
setBigDecimal(int parameterIndex, BigDecimal x)
将指定参数设置为给定的java.math.BigDecimal
值。void
setBinaryStream(int parameterIndex, InputStream x)
将指定参数设置为给定输入流。void
setBinaryStream(int parameterIndex, InputStream x, int length)
将指定参数设置为给定输入流,该输入流将具有指定的字节数。void
setBinaryStream(int parameterIndex, InputStream x, long length)
将指定参数设置为给定输入流,该输入流将具有指定的字节数。void
setBlob(int parameterIndex, InputStream inputStream)
将指定参数设置为InputStream
对象。void
setBlob(int parameterIndex, InputStream inputStream, long length)
将指定参数设置为InputStream
对象。void
setBlob(int parameterIndex, Blob x)
将指定参数设置为给定的java.sql.Blob
对象。void
setBoolean(int parameterIndex, boolean x)
将指定参数设置为给定的Javaboolean
值。void
setByte(int parameterIndex, byte x)
将指定参数设置为给定的Javabyte
值。void
setBytes(int parameterIndex, byte[] x)
将指定参数设置为给定的Java字节数组。void
setCharacterStream(int parameterIndex, Reader reader)
将指定参数设置为给定的Reader
对象。void
setCharacterStream(int parameterIndex, Reader reader, int length)
将指定参数设置为给定的Reader
对象,该对象是给定的字符长度。void
setCharacterStream(int parameterIndex, Reader reader, long length)
将指定参数设置为给定的Reader
对象,该对象是给定的字符长度。void
setClob(int parameterIndex, Reader reader)
将指定参数设置为Reader
对象。void
setClob(int parameterIndex, Reader reader, long length)
将指定参数设置为Reader
对象。void
setClob(int parameterIndex, Clob x)
将指定参数设置为给定的java.sql.Clob
对象。void
setDate(int parameterIndex, Date x)
使用运行应用程序的虚拟机的默认时区将指定参数设置为给定的java.sql.Date
值。void
setDate(int parameterIndex, Date x, Calendar cal)
使用给定的Calendar
对象将指定参数设置为给定的java.sql.Date
值。void
setDouble(int parameterIndex, double x)
将指定参数设置为给定的Javadouble
值。void
setFloat(int parameterIndex, float x)
将指定参数设置为给定的Javafloat
值。void
setInt(int parameterIndex, int x)
将指定参数设置为给定的Javaint
值。void
setLong(int parameterIndex, long x)
将指定参数设置为给定的Javalong
值。void
setNCharacterStream(int parameterIndex, Reader value)
将指定参数设置为Reader
对象。void
setNCharacterStream(int parameterIndex, Reader value, long length)
将指定参数设置为Reader
对象。void
setNClob(int parameterIndex, Reader reader)
将指定参数设置为Reader
对象。void
setNClob(int parameterIndex, Reader reader, long length)
将指定参数设置为Reader
对象。void
setNClob(int parameterIndex, NClob value)
将指定参数设置为java.sql.NClob
对象。void
setNString(int parameterIndex, String value)
将指定参数设置为给定的String
对象。void
setNull(int parameterIndex, int sqlType)
将指定参数设置为SQLNULL
。void
setNull(int parameterIndex, int sqlType, String typeName)
将指定的参数设置为SQLNULL
。void
setObject(int parameterIndex, Object x)
使用给定对象设置指定参数的值。void
setObject(int parameterIndex, Object x, int targetSqlType)
使用给定对象设置指定参数的值。void
setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength)
使用给定对象设置指定参数的值。default void
setObject(int parameterIndex, Object x, SQLType targetSqlType)
使用给定对象设置指定参数的值。default void
setObject(int parameterIndex, Object x, SQLType targetSqlType, int scaleOrLength)
使用给定对象设置指定参数的值。void
setRef(int parameterIndex, Ref x)
将指定参数设置为给定的REF(<structured-type>)
值。void
setRowId(int parameterIndex, RowId x)
将指定参数设置为给定的java.sql.RowId
对象。void
setShort(int parameterIndex, short x)
将指定参数设置为给定的Javashort
值。void
setSQLXML(int parameterIndex, SQLXML xmlObject)
将指定参数设置为给定的java.sql.SQLXML
对象。void
setString(int parameterIndex, String x)
将指定参数设置为给定的JavaString
值。void
setTime(int parameterIndex, Time x)
将指定参数设置为给定的java.sql.Time
值。void
setTime(int parameterIndex, Time x, Calendar cal)
使用给定的Calendar
对象将指定参数设置为给定的java.sql.Time
值。void
setTimestamp(int parameterIndex, Timestamp x)
将指定参数设置为给定的java.sql.Timestamp
值。void
setTimestamp(int parameterIndex, Timestamp x, Calendar cal)
使用给定的Calendar
对象将指定参数设置为给定的java.sql.Timestamp
值。void
setUnicodeStream(int parameterIndex, InputStream x, int length)
已过时。使用setCharacterStream
void
setURL(int parameterIndex, URL x)
将指定参数设置为给定的java.net.URL
值。-
声明方法的接口 java.sql.Statement
addBatch, cancel, clearBatch, clearWarnings, close, closeOnCompletion, enquoteIdentifier, enquoteLiteral, enquoteNCharLiteral, execute, execute, execute, execute, executeBatch, executeLargeBatch, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeLargeUpdate, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getLargeMaxRows, getLargeUpdateCount, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isCloseOnCompletion, isPoolable, isSimpleIdentifier, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setLargeMaxRows, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
-
声明方法的接口 java.sql.Wrapper
isWrapperFor, unwrap
-
-
-
-
方法详细信息
-
executeQuery
ResultSet executeQuery() throws SQLException
执行此PreparedStatement
对象中的SQL查询,并返回查询生成的ResultSet
对象。- 结果
-
包含查询生成的数据的
ResultSet
对象; 永远不会null
- 异常
-
SQLException
- 如果发生数据库访问错误; 在关闭的PreparedStatement
上调用此方法,或者SQL语句不返回ResultSet
对象 -
SQLTimeoutException
- 当驱动程序确定已超出setQueryTimeout
方法指定的超时值并且至少尝试取消当前运行的Statement
-
executeUpdate
int executeUpdate() throws SQLException
执行在该SQL语句PreparedStatement
对象,它必须是一个SQL数据操纵语言(DML)语句,比如INSERT
,UPDATE
或DELETE
; 或者不返回任何内容的SQL语句,例如DDL语句。- 结果
- (1)SQL数据操作语言(DML)语句的行数或(2)0表示不返回任何内容的SQL语句
- 异常
-
SQLException
- 如果发生数据库访问错误; 在关闭的PreparedStatement
上调用此方法,或者SQL语句返回ResultSet
对象 -
SQLTimeoutException
- 当驱动程序确定已超出setQueryTimeout
方法指定的超时值并且至少尝试取消当前运行的Statement
-
setNull
void setNull(int parameterIndex, int sqlType) throws SQLException
将指定参数设置为SQLNULL
。注意:您必须指定参数的SQL类型。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
sqlType
-java.sql.Types
定义的SQL类型代码 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
-如果sqlType
是ARRAY
,BLOB
,CLOB
,DATALINK
,JAVA_OBJECT
,NCHAR
,NCLOB
,NVARCHAR
,LONGNVARCHAR
,REF
,ROWID
,SQLXML
或STRUCT
数据类型和JDBC驱动程序不支持此数据类型
-
setBoolean
void setBoolean(int parameterIndex, boolean x) throws SQLException
将指定参数设置为给定的Javaboolean
值。 驱动程序在将其发送到数据库时将其转换为SQLBIT
或BOOLEAN
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setByte
void setByte(int parameterIndex, byte x) throws SQLException
将指定参数设置为给定的Javabyte
值。 驱动程序在将其发送到数据库时将其转换为SQLTINYINT
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setShort
void setShort(int parameterIndex, short x) throws SQLException
将指定参数设置为给定的Javashort
值。 驱动程序在将其发送到数据库时将其转换为SQLSMALLINT
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setInt
void setInt(int parameterIndex, int x) throws SQLException
将指定参数设置为给定的Javaint
值。 驱动程序在将其发送到数据库时将其转换为SQLINTEGER
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setLong
void setLong(int parameterIndex, long x) throws SQLException
将指定参数设置为给定的Javalong
值。 驱动程序在将其发送到数据库时将其转换为SQLBIGINT
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setFloat
void setFloat(int parameterIndex, float x) throws SQLException
将指定参数设置为给定的Javafloat
值。 将驱动程序发送到数据库时,驱动程序将其转换为SQLREAL
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setDouble
void setDouble(int parameterIndex, double x) throws SQLException
将指定参数设置为给定的Javadouble
值。 将驱动程序发送到数据库时,驱动程序将其转换为SQLDOUBLE
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setBigDecimal
void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException
将指定参数设置为给定的java.math.BigDecimal
值。 驱动程序在将其发送到数据库时将其转换为SQLNUMERIC
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setString
void setString(int parameterIndex, String x) throws SQLException
将指定参数设置为给定的JavaString
值。 将驱动程序发送到数据库时,驱动程序将其转换为SQLVARCHAR
或LONGVARCHAR
值(取决于参数的大小相对于驱动程序对VARCHAR
值的限制)。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setBytes
void setBytes(int parameterIndex, byte[] x) throws SQLException
将指定参数设置为给定的Java字节数组。 将驱动程序发送到数据库时,驱动程序将其转换为SQLVARBINARY
或LONGVARBINARY
(取决于参数的大小相对于驱动程序对VARBINARY
值的限制)。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setDate
void setDate(int parameterIndex, Date x) throws SQLException
使用运行应用程序的虚拟机的默认时区将指定参数设置为给定的java.sql.Date
值。 将驱动程序发送到数据库时,驱动程序将其转换为SQLDATE
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setTime
void setTime(int parameterIndex, Time x) throws SQLException
将指定参数设置为给定的java.sql.Time
值。 驱动程序在将其发送到数据库时将其转换为SQLTIME
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setTimestamp
void setTimestamp(int parameterIndex, Timestamp x) throws SQLException
将指定参数设置为给定的java.sql.Timestamp
值。 驱动程序在将其发送到数据库时将其转换为SQLTIMESTAMP
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setAsciiStream
void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException
将指定参数设置为给定输入流,该输入流将具有指定的字节数。 当一个非常大的ASCII值输入到LONGVARCHAR
参数时,通过java.io.InputStream
发送它可能更实用。 将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将执行从ASCII到数据库char格式的任何必要转换。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含ASCII参数值的Java输入流 -
length
- 流中的字节数 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setUnicodeStream
@Deprecated(since="1.2") void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException
Deprecated.UsesetCharacterStream
将指定参数设置为给定输入流,该输入流将具有指定的字节数。 当将非常大的Unicode值输入到LONGVARCHAR
参数时,通过java.io.InputStream
对象发送它可能更实用。 将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将执行从Unicode到数据库char格式的任何必要转换。 Unicode流的字节格式必须是Java UTF-8,如Java虚拟机规范中所定义。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含Unicode参数值的java.io.InputStream
对象 -
length
- 流中的字节数 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法
-
setBinaryStream
void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException
将指定参数设置为给定输入流,该输入流将具有指定的字节数。 当将非常大的二进制值输入到LONGVARBINARY
参数时,通过java.io.InputStream
对象发送它可能更实际。 将根据需要从流中读取数据,直到达到文件结尾。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含二进制参数值的java输入流 -
length
- 流中的字节数 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
clearParameters
void clearParameters() throws SQLException
立即清除当前参数值。通常,参数值对于重复使用语句仍然有效。 设置参数值会自动清除其先前的值。 但是,在某些情况下,立即释放当前参数值使用的资源是有用的; 这可以通过调用方法
clearParameters
来完成。- 异常
-
SQLException
- 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法
-
setObject
void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException
使用给定对象设置指定参数的值。 此方法类似于setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength)
,但它假定比例为零。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含输入参数值的对象 -
targetSqlType
- 要发送到数据库的SQL类型(在java.sql.Types中定义) - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持指定的targetSqlType - 另请参见:
-
Types
-
setObject
void setObject(int parameterIndex, Object x) throws SQLException
使用给定对象设置指定参数的值。
JDBC规范指定了从Java
Object
类型到SQL类型的标准映射。 在发送到数据库之前,给定的参数将转换为相应的SQL类型。请注意,此方法可用于通过使用特定于驱动程序的Java类型来传递特定于数据库的抽象数据类型。 如果对象是实现接口
SQLData
的类,则JDBC驱动程序应调用方法SQLData.writeSQL
将其写入SQL数据流。 如果,在另一方面,对象是实现一类的Ref
,Blob
,Clob
,NClob
,Struct
,java.net.URL
,RowId
,SQLXML
或Array
,驾驶员应把它传递给数据库作为相应SQL类型的值。注意:并非所有数据库都允许将非类型的Null发送到后端。 为获得最大的可移植性,应使用
setNull
或setObject(int parameterIndex, Object x, int sqlType)
方法代替setObject(int parameterIndex, Object x)
。注意:如果存在歧义,此方法将引发异常,例如,如果对象是实现多个上述接口的类的类。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含输入参数值的对象 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误; 在关闭的PreparedStatement
上调用此方法,或者给定对象的类型不明确
-
execute
boolean execute() throws SQLException
执行此PreparedStatement
对象中的SQL语句,该对象可以是任何类型的SQL语句。 一些预备语句会返回多个结果;execute
方法处理这些复杂语句以及方法executeQuery
和executeUpdate
处理的更简单形式的语句。execute
方法返回boolean
以指示第一个结果的形式。 您必须调用方法getResultSet
或getUpdateCount
来检索结果; 您必须致电getMoreResults
以转移到任何后续结果。- 结果
-
true
如果第一个结果是ResultSet
对象;false
如果第一个结果是更新计数或没有结果 - 异常
-
SQLException
- 如果发生数据库访问错误; 在关闭的PreparedStatement
上调用此方法,或者为此方法提供参数 -
SQLTimeoutException
- 当驱动程序确定已超出setQueryTimeout
方法指定的超时值且至少尝试取消当前运行的Statement
- 另请参见:
-
Statement.execute(java.lang.String)
,Statement.getResultSet()
,Statement.getUpdateCount()
,Statement.getMoreResults()
-
addBatch
void addBatch() throws SQLException
向此PreparedStatement
对象的一批命令添加一组参数。- 异常
-
SQLException
- 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 - 从以下版本开始:
- 1.2
- 另请参见:
-
Statement.addBatch(java.lang.String)
-
setCharacterStream
void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException
将指定参数设置为给定的Reader
对象,该对象是给定的字符长度。 当将非常大的UNICODE值输入到LONGVARCHAR
参数时,通过java.io.Reader
对象发送它可能更实际。 将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将执行从UNICODE到数据库char格式的任何必要转换。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
reader
- 包含Unicode数据的java.io.Reader
对象 -
length
- 流中的字符数 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 - 从以下版本开始:
- 1.2
-
setRef
void setRef(int parameterIndex, Ref x) throws SQLException
将指定参数设置为给定的REF(<structured-type>)
值。 驱动程序在将其发送到数据库时将其转换为SQLREF
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 一个SQLREF
值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.2
-
setBlob
void setBlob(int parameterIndex, Blob x) throws SQLException
将指定参数设置为给定的java.sql.Blob
对象。 驱动程序将其发送到数据库时将其转换为SQLBLOB
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 映射SQLBLOB
值的Blob
对象 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.2
-
setClob
void setClob(int parameterIndex, Clob x) throws SQLException
将指定参数设置为给定的java.sql.Clob
对象。 驱动程序在将其发送到数据库时将其转换为SQLCLOB
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 映射SQLCLOB
值的Clob
对象 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.2
-
setArray
void setArray(int parameterIndex, Array x) throws SQLException
将指定参数设置为给定的java.sql.Array
对象。 驱动程序在将其发送到数据库时将其转换为SQLARRAY
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 映射SQLARRAY
值的Array
对象 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.2
-
getMetaData
ResultSetMetaData getMetaData() throws SQLException
检索ResultSetMetaData
对象,该对象包含有关在执行此PreparedStatement
对象时将返回的ResultSet
对象的列的信息。因为预编译了
PreparedStatement
对象,所以可以了解它将返回的ResultSet
对象而不必执行它。 因此,可以在PreparedStatement
对象上调用方法getMetaData
,而不是等待执行它,然后在返回的ResultSet
对象上调用ResultSet.getMetaData
方法。注意:由于缺乏基础DBMS支持,对于某些驱动程序使用此方法可能会很昂贵。
- 结果
-
ResultSet
对象列的描述或null
如果驱动程序无法返回ResultSetMetaData
对象 - 异常
-
SQLException
- 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.2
-
setDate
void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException
使用给定的Calendar
对象将指定参数设置为给定的java.sql.Date
值。 驱动程序使用Calendar
对象构造SQLDATE
值,然后驱动程序将其发送到数据库。 使用Calendar
对象,驱动程序可以计算考虑自定义时区的日期。 如果未指定Calendar
对象,则驱动程序将使用默认时区,即运行应用程序的虚拟机的时区。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 -
cal
- 驱动程序将用于构造日期的Calendar
对象 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 - 从以下版本开始:
- 1.2
-
setTime
void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException
使用给定的Calendar
对象将指定参数设置为给定的java.sql.Time
值。 驱动程序使用Calendar
对象构造SQLTIME
值,然后驱动程序将其发送到数据库。 使用Calendar
对象,驱动程序可以计算考虑自定义时区的时间。 如果未指定Calendar
对象,则驱动程序将使用默认时区,即运行应用程序的虚拟机的时区。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 -
cal
- 驱动程序将用于构造时间的Calendar
对象 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 - 从以下版本开始:
- 1.2
-
setTimestamp
void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException
使用给定的Calendar
对象将指定参数设置为给定的java.sql.Timestamp
值。 驱动程序使用Calendar
对象构造SQLTIMESTAMP
值,然后驱动程序将其发送到数据库。 使用Calendar
对象,驱动程序可以计算考虑自定义时区的时间戳。 如果未指定Calendar
对象,则驱动程序将使用默认时区,即运行应用程序的虚拟机的时区。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 -
cal
- 驱动程序将用于构造时间戳的Calendar
对象 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 - 从以下版本开始:
- 1.2
-
setNull
void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException
将指定参数设置为SQLNULL
。 此版本的方法setNull
应该用于用户定义的类型和REF类型参数。 用户定义类型的示例包括:STRUCT,DISTINCT,JAVA_OBJECT和命名数组类型。注意:为了便于移植,应用程序必须在指定NULL用户定义或REF参数时提供SQL类型代码和完全限定的SQL类型名称。 在用户定义类型的情况下,名称是参数本身的类型名称。 对于REF参数,名称是引用类型的类型名称。 如果JDBC驱动程序不需要类型代码或类型名称信息,则可能会忽略它。 虽然它适用于用户定义和Ref参数,但此方法可用于设置任何JDBC类型的null参数。 如果参数没有用户定义或REF类型,则忽略给定的typeName。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
sqlType
- 来自java.sql.Types
的值 -
typeName
- SQL用户定义类型的完全限定名称; 如果参数不是用户定义的类型或REF,则忽略 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
-如果sqlType
是ARRAY
,BLOB
,CLOB
,DATALINK
,JAVA_OBJECT
,NCHAR
,NCLOB
,NVARCHAR
,LONGNVARCHAR
,REF
,ROWID
,SQLXML
或STRUCT
数据类型和JDBC驱动程序不支持此数据类型,或者JDBC驱动程序不支持这种方法 - 从以下版本开始:
- 1.2
-
setURL
void setURL(int parameterIndex, URL x) throws SQLException
将指定参数设置为给定的java.net.URL
值。 驱动程序在将其发送到数据库时将其转换为SQLDATALINK
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 要设置的java.net.URL
对象 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.4
-
getParameterMetaData
ParameterMetaData getParameterMetaData() throws SQLException
检索此PreparedStatement
对象参数的数量,类型和属性。- 结果
-
ParameterMetaData
对象,其中包含有关此PreparedStatement
对象的每个参数标记的数量,类型和属性的信息 - 异常
-
SQLException
- 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 - 从以下版本开始:
- 1.4
- 另请参见:
-
ParameterMetaData
-
setRowId
void setRowId(int parameterIndex, RowId x) throws SQLException
将指定参数设置为给定的java.sql.RowId
对象。 驱动程序在将其发送到数据库时将其转换为SQLROWID
值- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setNString
void setNString(int parameterIndex, String value) throws SQLException
将指定参数设置为给定的String
对象。 将驱动程序发送到数据库时,驱动程序将其转换为SQLNCHAR
或NVARCHAR
或LONGNVARCHAR
值(取决于参数的大小相对于驱动程序对NVARCHAR
值的限制)。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
value
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误; 或者在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setNCharacterStream
void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException
将指定参数设置为Reader
对象。Reader
读取数据直到达到文件结尾。 驱动程序执行从Java字符格式到数据库中的国家字符集的必要转换。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
value
- 参数值 -
length
- 参数数据中的字符数。 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误; 或者在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setNClob
void setNClob(int parameterIndex, NClob value) throws SQLException
将指定参数设置为java.sql.NClob
对象。 驱动程序在将其发送到数据库时将其转换为SQLNCLOB
值。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
value
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误; 或者在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setClob
void setClob(int parameterIndex, Reader reader, long length) throws SQLException
将指定参数设置为Reader
对象。 阅读器必须包含由length指定的字符数,否则在执行SQLException
将生成PreparedStatement
。 此方法与setCharacterStream (int, Reader, int)
方法不同,因为它通知驱动程序参数值应作为CLOB
发送到服务器。 使用setCharacterStream
方法时,驱动程序可能需要做额外的工作来确定参数数据是否应作为LONGVARCHAR
或CLOB
发送到服务器- 参数
-
parameterIndex
- 第一个参数的索引是1,第二个参数是2,... -
reader
- 包含要将参数值设置为的数据的对象。 -
length
- 参数数据中的字符数。 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误; 如果指定的长度小于零,则在关闭的PreparedStatement
上调用此方法。 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setBlob
void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException
将指定参数设置为InputStream
对象。Inputstream
必须包含由length指定的字符数,否则在执行SQLException
将生成PreparedStatement
。 此方法与setBinaryStream (int, InputStream, int)
方法不同,因为它通知驱动程序参数值应作为BLOB
发送到服务器。 使用setBinaryStream
方法时,驱动程序可能需要做额外的工作来确定参数数据是否应作为LONGVARBINARY
或BLOB
发送到服务器- 参数
-
parameterIndex
- 第一个参数的索引是1,第二个参数是2,... -
inputStream
- 包含要将参数值设置为的数据的对象。 -
length
- 参数数据中的字节数。 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误; 在封闭的PreparedStatement
上调用此方法; 如果指定的长度小于零或者InputStream
中的字节数与指定的长度不匹配。 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setNClob
void setNClob(int parameterIndex, Reader reader, long length) throws SQLException
将指定参数设置为Reader
对象。 阅读器必须包含由length指定的字符数,否则在执行SQLException
将生成PreparedStatement
。 此方法与setCharacterStream (int, Reader, int)
方法不同,因为它通知驱动程序参数值应作为NCLOB
发送到服务器。 使用setCharacterStream
方法时,驱动程序可能需要做额外的工作来确定参数数据是否应作为LONGNVARCHAR
或NCLOB
发送到服务器- 参数
-
parameterIndex
- 第一个参数的索引是1,第二个参数是2,... -
reader
- 包含要将参数值设置为的数据的对象。 -
length
- 参数数据中的字符数。 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果指定的长度小于零; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setSQLXML
void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException
将指定参数设置为给定的java.sql.SQLXML
对象。 驱动程序在将其发送到数据库时将其转换为SQLXML
值。- 参数
-
parameterIndex
- 第一个参数的索引是1,第二个参数是2,... -
xmlObject
- 一个映射SQLXML
值的SQLXML
对象 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误; 这个方法被称为在关闭的PreparedStatement
或java.xml.transform.Result
,Writer
或OutputStream
为尚未关闭SQLXML
对象 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setObject
void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength) throws SQLException
使用给定对象设置指定参数的值。 如果第二个参数是
InputStream
则流必须包含scaleOrLength指定的字节数。 如果第二个参数是Reader
则读者必须包含scaleOrLength指定的字符数。 如果这些条件不成立,则在执行SQLException
准备语句时,驱动程序将生成SQLException
。在发送到数据库之前,给定的Java对象将转换为给定的targetSqlType。 如果对象具有自定义映射(是实现接口
SQLData
的类),则JDBC驱动程序应调用方法SQLData.writeSQL
将其写入SQL数据流。 如果,在另一方面,对象是实现一类的Ref
,Blob
,Clob
,NClob
,Struct
,java.net.URL
,或Array
,驾驶员应把它传递给数据库作为相应SQL类型的值。请注意,此方法可用于传递特定于数据库的抽象数据类型。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含输入参数值的对象 -
targetSqlType
- 要发送到数据库的SQL类型(在java.sql.Types中定义)。 scale参数可以进一步限定此类型。 -
scaleOrLength
- 对于java.sql.Types.DECIMAL
或java.sql.Types.NUMERIC types
,这是小数点后的位数。 对于Java对象类型InputStream
和Reader
,这是流或读取器中数据的长度。 对于所有其他类型,将忽略此值。 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误; 在关闭的PreparedStatement
上调用此方法,或者如果x指定的Java对象是InputStream或Reader对象,并且scale参数的值小于零 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持指定的targetSqlType - 另请参见:
-
Types
-
setAsciiStream
void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException
将指定参数设置为给定输入流,该输入流将具有指定的字节数。 当一个非常大的ASCII值输入到LONGVARCHAR
参数时,通过java.io.InputStream
发送它可能更实用。 将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将执行从ASCII到数据库char格式的任何必要转换。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含ASCII参数值的Java输入流 -
length
- 流中的字节数 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 - 从以下版本开始:
- 1.6
-
setBinaryStream
void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException
将指定参数设置为给定输入流,该输入流将具有指定的字节数。 当一个非常大的二进制值输入到LONGVARBINARY
参数时,通过java.io.InputStream
对象发送它可能更实际。 将根据需要从流中读取数据,直到达到文件结尾。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含二进制参数值的java输入流 -
length
- 流中的字节数 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 - 从以下版本开始:
- 1.6
-
setCharacterStream
void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException
将指定参数设置为给定的Reader
对象,该对象是给定的字符长度。 将非常大的UNICODE值输入到LONGVARCHAR
参数时,通过java.io.Reader
对象发送它可能更实际。 将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将执行从UNICODE到数据库char格式的任何必要转换。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
reader
- 包含Unicode数据的java.io.Reader
对象 -
length
- 流中的字符数 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 - 从以下版本开始:
- 1.6
-
setAsciiStream
void setAsciiStream(int parameterIndex, InputStream x) throws SQLException
将指定参数设置为给定输入流。 当将非常大的ASCII值输入到LONGVARCHAR
参数时,通过java.io.InputStream
发送它可能更实用。 将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将执行从ASCII到数据库char格式的任何必要转换。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
注意:请参阅JDBC驱动程序文档以确定使用带有长度参数的
setAsciiStream
版本是否更有效。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含ASCII参数值的Java输入流 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setBinaryStream
void setBinaryStream(int parameterIndex, InputStream x) throws SQLException
将指定参数设置为给定输入流。 当将非常大的二进制值输入到LONGVARBINARY
参数时,通过java.io.InputStream
对象发送它可能更实际。 将根据需要从流中读取数据,直到达到文件结尾。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
注意:请参阅JDBC驱动程序文档,以确定使用带有长度参数的
setBinaryStream
版本是否更有效。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含二进制参数值的java输入流 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setCharacterStream
void setCharacterStream(int parameterIndex, Reader reader) throws SQLException
将指定参数设置为给定的Reader
对象。 当将非常大的UNICODE值输入到LONGVARCHAR
参数时,通过java.io.Reader
对象发送它可能更实用。 将根据需要从流中读取数据,直到达到文件结尾。 JDBC驱动程序将执行从UNICODE到数据库char格式的任何必要转换。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
注意:请参阅JDBC驱动程序文档以确定使用带有长度参数的
setCharacterStream
版本是否更有效。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
reader
- 包含Unicode数据的java.io.Reader
对象 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setNCharacterStream
void setNCharacterStream(int parameterIndex, Reader value) throws SQLException
将指定参数设置为Reader
对象。Reader
读取数据,直到达到文件结尾。 驱动程序执行从Java字符格式到数据库中的国家字符集的必要转换。注意:此流对象可以是标准Java流对象,也可以是您自己的实现标准接口的子类。
注意:请参阅JDBC驱动程序文档,以确定使用带有长度参数的
setNCharacterStream
版本是否更有效。- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
value
- 参数值 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误; 或者在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setClob
void setClob(int parameterIndex, Reader reader) throws SQLException
将指定参数设置为Reader
对象。 此方法与setCharacterStream (int, Reader)
方法不同,因为它通知驱动程序参数值应作为CLOB
发送到服务器。 使用setCharacterStream
方法时,驱动程序可能需要做额外的工作以确定参数数据是否应作为LONGVARCHAR
或CLOB
发送到服务器注意:请参阅JDBC驱动程序文档以确定使用带有长度参数的
setClob
版本是否更有效。- 参数
-
parameterIndex
- 第一个参数的索引是1,第二个参数是2,... -
reader
- 包含要将参数值设置为的数据的对象。 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误; 在关闭的PreparedStatement
上调用此方法,或者如果parameterIndex与SQL语句中的参数标记不对应 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setBlob
void setBlob(int parameterIndex, InputStream inputStream) throws SQLException
将指定参数设置为InputStream
对象。 此方法与setBinaryStream (int, InputStream)
方法不同,因为它通知驱动程序参数值应作为BLOB
发送到服务器。 使用setBinaryStream
方法时,驱动程序可能需要做额外的工作来确定参数数据是否应作为LONGVARBINARY
或BLOB
发送到服务器注意:请参阅JDBC驱动程序文档,以确定使用带有长度参数的
setBlob
版本是否更有效。- 参数
-
parameterIndex
- 第一个参数的索引是1,第二个参数是2,... -
inputStream
- 包含要将参数值设置为的数据的对象。 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误; 在关闭的PreparedStatement
上调用此方法,或者如果parameterIndex与SQL语句中的参数标记不对应, -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setNClob
void setNClob(int parameterIndex, Reader reader) throws SQLException
将指定参数设置为Reader
对象。 此方法与setCharacterStream (int, Reader)
方法不同,因为它通知驱动程序参数值应作为NCLOB
发送到服务器。 使用setCharacterStream
方法时,驱动程序可能需要做额外的工作来确定参数数据是否应作为LONGNVARCHAR
或NCLOB
发送到服务器注意:请参阅JDBC驱动程序文档以确定使用带有长度参数的
setNClob
版本是否更有效。- 参数
-
parameterIndex
- 第一个参数的索引是1,第二个参数是2,... -
reader
- 包含要将参数值设置为的数据的对象。 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果司机不支持国家字符集; 如果驱动程序可以检测到可能发生数据转换错误; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持此方法 - 从以下版本开始:
- 1.6
-
setObject
default void setObject(int parameterIndex, Object x, SQLType targetSqlType, int scaleOrLength) throws SQLException
使用给定对象设置指定参数的值。 如果第二个参数是
InputStream
则流必须包含scaleOrLength指定的字节数。 如果第二个参数是Reader
那么阅读器必须包含scaleOrLength指定的字符数。 如果这些条件不成立,则在执行SQLException
准备语句时,驱动程序将生成SQLException
。在发送到数据库之前,给定的Java对象将转换为给定的targetSqlType。 如果对象具有自定义映射(是实现接口
SQLData
的类),则JDBC驱动程序应调用方法SQLData.writeSQL
将其写入SQL数据流。 如果,在另一方面,对象是实现一类的Ref
,Blob
,Clob
,NClob
,Struct
,java.net.URL
,或Array
,驾驶员应把它传递给数据库作为相应SQL类型的值。请注意,此方法可用于传递特定于数据库的抽象数据类型。
默认实现将抛出
SQLFeatureNotSupportedException
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含输入参数值的对象 -
targetSqlType
- 要发送到数据库的SQL类型。 scale参数可以进一步限定此类型。 -
scaleOrLength
- 对于java.sql.JDBCType.DECIMAL
或java.sql.JDBCType.NUMERIC types
,这是小数点后的位数。 对于Java对象类型InputStream
和Reader
,这是流或读取器中数据的长度。 对于所有其他类型,将忽略此值。 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法,或者x指定的Java对象是InputStream或Reader对象且scale参数的值小于零 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持指定的targetSqlType - 从以下版本开始:
- 1.8
- 另请参见:
-
JDBCType
,SQLType
-
setObject
default void setObject(int parameterIndex, Object x, SQLType targetSqlType) throws SQLException
使用给定对象设置指定参数的值。 此方法类似于setObject(int parameterIndex, Object x, SQLType targetSqlType, int scaleOrLength)
,但它假定比例为零。默认实现将抛出
SQLFeatureNotSupportedException
- 参数
-
parameterIndex
- 第一个参数是1,第二个参数是2,... -
x
- 包含输入参数值的对象 -
targetSqlType
- 要发送到数据库的SQL类型 - 异常
-
SQLException
- 如果parameterIndex与SQL语句中的参数标记不对应; 如果发生数据库访问错误或在关闭的PreparedStatement
上调用此方法 -
SQLFeatureNotSupportedException
- 如果JDBC驱动程序不支持指定的targetSqlType - 从以下版本开始:
- 1.8
- 另请参见:
-
JDBCType
,SQLType
-
executeLargeUpdate
default long executeLargeUpdate() throws SQLException
执行在该SQL语句PreparedStatement
对象,它必须是一个SQL数据操纵语言(DML)语句,比如INSERT
,UPDATE
或DELETE
; 或者不返回任何内容的SQL语句,例如DDL语句。当返回的行数可能超过
Integer.MAX_VALUE
时,应使用此方法。默认实现将抛出
UnsupportedOperationException
- 结果
- (1)SQL数据操作语言(DML)语句的行数或(2)0表示不返回任何内容的SQL语句
- 异常
-
SQLException
- 如果发生数据库访问错误; 在关闭的PreparedStatement
上调用此方法,或者SQL语句返回ResultSet
对象 -
SQLTimeoutException
- 当驱动程序确定已超出setQueryTimeout
方法指定的超时值且至少尝试取消当前运行的Statement
- 从以下版本开始:
- 1.8
-
-