- 所有父级接口:
AutoCloseable,Statement,Wrapper
- 所有已知的子接口:
CallableStatement
SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用该对象多次有效地执行该语句。
笔记:用于设置 IN 参数值的设置方法(setShort、setString 等)必须指定与输入参数的已定义 SQL 类型兼容的类型。例如,如果 IN 参数具有 SQL 类型 INTEGER,则应使用方法 setInt。
如果需要任意参数类型转换,方法 setObject 应该与目标 SQL 类型一起使用。
在下面设置参数的例子中,con代表一个活跃的连接:
BigDecimal sal = new BigDecimal("153833.00");
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, sal);
pstmt.setInt(2, 110592);
- 自从:
- 1.1
- 参见:
-
字段摘要
-
方法总结
修饰符和类型方法描述voidaddBatch()向此PreparedStatement对象的命令批次添加一组参数。void立即清除当前参数值。booleanexecute()执行这个PreparedStatement对象中的SQL语句,可以是任何一种SQL语句。default long执行此PreparedStatement对象中的 SQL 语句,该语句必须是 SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。在此PreparedStatement对象中执行 SQL 查询并返回查询生成的ResultSet对象。int执行此PreparedStatement对象中的 SQL 语句,该语句必须是 SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。检索一个ResultSetMetaData对象,其中包含有关执行此PreparedStatement对象时将返回的ResultSet对象的列的信息。检索此PreparedStatement对象参数的数量、类型和属性。void将指定参数设置为给定的java.sql.Array对象。voidsetAsciiStream(int parameterIndex, InputStream x) 将指定参数设置为给定的输入流。voidsetAsciiStream(int parameterIndex, InputStream x, int length) 将指定参数设置为给定的输入流,它将具有指定的字节数。voidsetAsciiStream(int parameterIndex, InputStream x, long length) 将指定参数设置为给定的输入流,它将具有指定的字节数。voidsetBigDecimal(int parameterIndex, BigDecimal x) 将指定参数设置为给定的java.math.BigDecimal值。voidsetBinaryStream(int parameterIndex, InputStream x) 将指定参数设置为给定的输入流。voidsetBinaryStream(int parameterIndex, InputStream x, int length) 将指定参数设置为给定的输入流,它将具有指定的字节数。voidsetBinaryStream(int parameterIndex, InputStream x, long length) 将指定参数设置为给定的输入流,它将具有指定的字节数。voidsetBlob(int parameterIndex, InputStream inputStream) 将指定参数设置为InputStream对象。voidsetBlob(int parameterIndex, InputStream inputStream, long length) 将指定参数设置为InputStream对象。void将指定参数设置为给定的java.sql.Blob对象。voidsetBoolean(int parameterIndex, boolean x) 将指定参数设置为给定的 Javaboolean值。voidsetByte(int parameterIndex, byte x) 将指定参数设置为给定的 Javabyte值。voidsetBytes(int parameterIndex, byte[] x) 将指定参数设置为给定的 Java 字节数组。voidsetCharacterStream(int parameterIndex, Reader reader) 将指定参数设置为给定的Reader对象。voidsetCharacterStream(int parameterIndex, Reader reader, int length) 将指定参数设置为给定的Reader对象,它是给定的字符长度。voidsetCharacterStream(int parameterIndex, Reader reader, long length) 将指定参数设置为给定的Reader对象,它是给定的字符长度。void将指定参数设置为Reader对象。void将指定参数设置为Reader对象。void将指定参数设置为给定的java.sql.Clob对象。void使用运行应用程序的虚拟机的默认时区将指定参数设置为给定的java.sql.Date值。void使用给定的Calendar对象将指定参数设置为给定的java.sql.Date值。voidsetDouble(int parameterIndex, double x) 将指定参数设置为给定的 Javadouble值。voidsetFloat(int parameterIndex, float x) 将指定参数设置为给定的 Javafloat值。voidsetInt(int parameterIndex, int x) 将指定参数设置为给定的 Javaint值。voidsetLong(int parameterIndex, long x) 将指定参数设置为给定的 Javalong值。voidsetNCharacterStream(int parameterIndex, Reader value) 将指定参数设置为Reader对象。voidsetNCharacterStream(int parameterIndex, Reader value, long length) 将指定参数设置为Reader对象。void将指定参数设置为Reader对象。void将指定参数设置为Reader对象。void将指定参数设置为java.sql.NClob对象。voidsetNString(int parameterIndex, String value) 将指定参数设置为给定的String对象。voidsetNull(int parameterIndex, int sqlType) 将指定参数设置为 SQLNULL。void将指定参数设置为 SQLNULL。void使用给定对象设置指定参数的值。void使用给定对象设置指定参数的值。void使用给定对象设置指定参数的值。default void使用给定对象设置指定参数的值。default void使用给定对象设置指定参数的值。void将指定参数设置为给定的REF(<structured-type>)值。void将指定参数设置为给定的java.sql.RowId对象。voidsetShort(int parameterIndex, short x) 将指定参数设置为给定的 Javashort值。void将指定参数设置为给定的java.sql.SQLXML对象。void将指定参数设置为给定的 JavaString值。void将指定参数设置为给定的java.sql.Time值。void使用给定的Calendar对象将指定参数设置为给定的java.sql.Time值。voidsetTimestamp(int parameterIndex, Timestamp x) 将指定参数设置为给定的java.sql.Timestamp值。voidsetTimestamp(int parameterIndex, Timestamp x, Calendar cal) 使用给定的Calendar对象将指定参数设置为给定的java.sql.Timestamp值。voidsetUnicodeStream(int parameterIndex, InputStream x, int length) 已弃用。void将指定参数设置为给定的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
在此PreparedStatement对象中执行 SQL 查询并返回查询生成的ResultSet对象。- 返回:
-
包含查询产生的数据的
ResultSet对象;从不null - 抛出:
SQLException- 如果发生数据库访问错误;在关闭的PreparedStatement上调用此方法或 SQL 语句不返回ResultSet对象SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement
-
executeUpdate
执行此PreparedStatement对象中的 SQL 语句,该语句必须是 SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。- 返回:
- (1) SQL 数据操作语言 (DML) 语句的行计数或 (2) 0 用于不返回任何内容的 SQL 语句
- 抛出:
SQLException- 如果发生数据库访问错误;在关闭的PreparedStatement上调用此方法或 SQL 语句返回ResultSet对象SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement
-
setNull
将指定参数设置为 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
将指定参数设置为给定的 Javaboolean值。驱动程序将它发送到数据库时将其转换为 SQLBIT或BOOLEAN值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setByte
将指定参数设置为给定的 Javabyte值。驱动程序将其发送到数据库时将其转换为 SQLTINYINT值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setShort
将指定参数设置为给定的 Javashort值。驱动程序将它发送到数据库时将其转换为 SQLSMALLINT值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setInt
将指定参数设置为给定的 Javaint值。驱动程序将它发送到数据库时将其转换为 SQLINTEGER值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setLong
将指定参数设置为给定的 Javalong值。驱动程序将它发送到数据库时将其转换为 SQLBIGINT值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setFloat
将指定参数设置为给定的 Javafloat值。驱动程序将其发送到数据库时将其转换为 SQLREAL值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setDouble
将指定参数设置为给定的 Javadouble值。驱动程序将它发送到数据库时将其转换为 SQLDOUBLE值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setBigDecimal
将指定参数设置为给定的java.math.BigDecimal值。驱动程序将它发送到数据库时将其转换为 SQLNUMERIC值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setString
将指定参数设置为给定的 JavaString值。驱动程序将它发送到数据库时将其转换为 SQLVARCHAR或LONGVARCHAR值(取决于参数的大小相对于驱动程序对VARCHAR值的限制)。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setBytes
将指定参数设置为给定的 Java 字节数组。驱动程序将它发送到数据库时将其转换为 SQLVARBINARY或LONGVARBINARY(取决于参数的大小相对于驱动程序对VARBINARY值的限制)。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setDate
使用运行应用程序的虚拟机的默认时区将指定参数设置为给定的java.sql.Date值。驱动程序将它发送到数据库时将其转换为 SQLDATE值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setTime
将指定参数设置为给定的java.sql.Time值。驱动程序将它发送到数据库时将其转换为 SQLTIME值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setTimestamp
将指定参数设置为给定的java.sql.Timestamp值。驱动程序将它发送到数据库时将其转换为 SQLTIMESTAMP值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setAsciiStream
将指定参数设置为给定的输入流,它将具有指定的字节数。当一个非常大的 ASCII 值输入到LONGVARCHAR参数时,通过java.io.InputStream发送它可能更实用。数据将根据需要从流中读取,直到到达文件末尾。 JDBC 驱动程序将执行从 ASCII 到数据库字符格式的任何必要转换。笔记:此流对象可以是标准 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 SQL异常 已弃用。使用setCharacterStream将指定参数设置为给定的输入流,它将具有指定的字节数。当一个非常大的 Unicode 值输入到LONGVARCHAR参数时,通过java.io.InputStream对象发送它可能更实用。数据将根据需要从流中读取,直到到达文件末尾。 JDBC 驱动程序将执行从 Unicode 到数据库字符格式的任何必要转换。 Unicode 流的字节格式必须是 Java UTF-8,如 Java 虚拟机规范中所定义。笔记:此流对象可以是标准 Java 流对象,也可以是您自己实现标准接口的子类。
- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 包含 Unicode 参数值的java.io.InputStream对象length- 流中的字节数- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法
-
setBinaryStream
将指定参数设置为给定的输入流,它将具有指定的字节数。当一个非常大的二进制值被输入到LONGVARBINARY参数时,通过java.io.InputStream对象发送它可能更实用。数据将根据需要从流中读取,直到到达文件末尾。笔记:此流对象可以是标准 Java 流对象,也可以是您自己实现标准接口的子类。
- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 包含二进制参数值的 java 输入流length- 流中的字节数- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
clearParameters
立即清除当前参数值。通常,参数值对语句的重复使用保持有效。设置参数值会自动清除其先前的值。然而,在某些情况下,立即释放当前参数值使用的资源是有用的;这可以通过调用方法
clearParameters来完成。- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法
-
setObject
使用给定对象设置指定参数的值。此方法类似于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- 参见:
-
setObject
使用给定对象设置指定参数的值。
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
执行这个PreparedStatement对象中的SQL语句,可以是任何一种SQL语句。一些准备好的语句返回多个结果;execute方法处理这些复杂语句以及由方法executeQuery和executeUpdate处理的更简单形式的语句。execute方法返回一个boolean来表示第一个结果的形式。您必须调用方法getResultSet或getUpdateCount来检索结果;您必须调用getMoreResults才能移动到任何后续结果。- 返回:
true如果第一个结果是ResultSet对象;false如果第一个结果是更新计数或者没有结果- 抛出:
SQLException- 如果发生数据库访问错误;在关闭的PreparedStatement上调用此方法或向此方法提供参数SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 参见:
-
addBatch
向此PreparedStatement对象的命令批次添加一组参数。- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法- 自从:
- 1.2
- 参见:
-
setCharacterStream
将指定参数设置为给定的Reader对象,它是给定的字符长度。当一个非常大的 UNICODE 值输入到LONGVARCHAR参数时,通过java.io.Reader对象发送它可能更实用。数据将根据需要从流中读取,直到到达文件末尾。 JDBC 驱动程序将执行从 UNICODE 到数据库字符格式的任何必要转换。笔记:此流对象可以是标准 Java 流对象,也可以是您自己实现标准接口的子类。
- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...reader- 包含 Unicode 数据的java.io.Reader对象length- 流中的字符数- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法- 自从:
- 1.2
-
setRef
将指定参数设置为给定的REF(<structured-type>)值。驱动程序将其发送到数据库时将其转换为 SQLREF值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- SQLREF值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.2
-
setBlob
将指定参数设置为给定的java.sql.Blob对象。驱动程序将它发送到数据库时将其转换为 SQLBLOB值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 映射 SQLBLOB值的Blob对象- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.2
-
setClob
将指定参数设置为给定的java.sql.Clob对象。驱动程序将它发送到数据库时将其转换为 SQLCLOB值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 映射 SQLCLOB值的Clob对象- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.2
-
setArray
将指定参数设置为给定的java.sql.Array对象。驱动程序将它发送到数据库时将其转换为 SQLARRAY值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 映射 SQLARRAY值的Array对象- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.2
-
getMetaData
检索一个ResultSetMetaData对象,其中包含有关执行此PreparedStatement对象时将返回的ResultSet对象的列的信息。因为
PreparedStatement对象是预编译的,所以无需执行它就可以知道它将返回的ResultSet对象。因此,可以在PreparedStatement对象上调用方法getMetaData而不是等待执行它然后在返回的ResultSet对象上调用ResultSet.getMetaData方法。NOTE:由于缺乏底层 DBMS 支持,使用此方法对于某些驱动程序来说可能代价高昂。
- 返回:
ResultSet对象列的描述或null如果驱动程序无法返回ResultSetMetaData对象- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.2
-
setDate
使用给定的Calendar对象将指定参数设置为给定的java.sql.Date值。驱动程序使用Calendar对象构造 SQLDATE值,然后驱动程序将其发送到数据库。使用Calendar对象,驱动程序可以在考虑自定义时区的情况下计算日期。如果未指定Calendar对象,则驱动程序使用默认时区,即运行应用程序的虚拟机的时区。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值cal- 驱动程序将用于构建日期的Calendar对象- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法- 自从:
- 1.2
-
setTime
使用给定的Calendar对象将指定参数设置为给定的java.sql.Time值。驱动程序使用Calendar对象构造 SQLTIME值,然后驱动程序将其发送到数据库。使用Calendar对象,驱动程序可以在考虑自定义时区的情况下计算时间。如果未指定Calendar对象,则驱动程序使用默认时区,即运行应用程序的虚拟机的时区。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值cal- 驱动程序将用于构建时间的Calendar对象- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法- 自从:
- 1.2
-
setTimestamp
使用给定的Calendar对象将指定参数设置为给定的java.sql.Timestamp值。驱动程序使用Calendar对象构造 SQLTIMESTAMP值,然后驱动程序将其发送到数据库。使用Calendar对象,驱动程序可以在考虑自定义时区的情况下计算时间戳。如果未指定Calendar对象,则驱动程序使用默认时区,即运行应用程序的虚拟机的时区。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值cal- 驱动程序将用于构建时间戳的Calendar对象- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法- 自从:
- 1.2
-
setNull
将指定参数设置为 SQLNULL。此版本的方法setNull应该用于用户定义类型和 REF 类型参数。用户定义类型的示例包括:STRUCT、DISTINCT、JAVA_OBJECT 和命名数组类型。笔记:为了便于移植,应用程序在指定 NULL 用户定义参数或 REF 参数时必须提供 SQL 类型代码和完全限定的 SQL 类型名称。在用户定义类型的情况下,名称是参数本身的类型名称。对于 REF 参数,名称是引用类型的类型名称。如果 JDBC 驱动程序不需要类型代码或类型名称信息,它可能会忽略它。尽管它适用于用户定义参数和 Ref 参数,但此方法可用于设置任何 JDBC 类型的空参数。如果参数没有用户定义或 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
将指定参数设置为给定的java.net.URL值。驱动程序将它发送到数据库时将其转换为 SQLDATALINK值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 要设置的java.net.URL对象- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.4
-
getParameterMetaData
检索此PreparedStatement对象参数的数量、类型和属性。- 返回:
-
一个
ParameterMetaData对象,其中包含有关此PreparedStatement对象的每个参数标记的数量、类型和属性的信息 - 抛出:
SQLException- 如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法- 自从:
- 1.4
- 参见:
-
setRowId
将指定参数设置为给定的java.sql.RowId对象。驱动程序将其发送到数据库时将其转换为 SQLROWID值- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setNString
将指定参数设置为给定的String对象。驱动程序将它发送到数据库时将其转换为 SQLNCHAR或NVARCHAR或LONGNVARCHAR值(取决于参数的大小相对于驱动程序对NVARCHAR值的限制)。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...value- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误;或者在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setNCharacterStream
将指定参数设置为Reader对象。Reader读取数据直到到达文件末尾。驱动程序执行从 Java 字符格式到数据库中国家字符集的必要转换。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...value- 参数值length- 参数数据中的字符数。- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误;或者在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setNClob
将指定参数设置为java.sql.NClob对象。驱动程序将它发送到数据库时将其转换为 SQLNCLOB值。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...value- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误;或者在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setClob
将指定参数设置为Reader对象。读取器必须包含长度指定的字符数,否则在执行PreparedStatement时将生成SQLException。此方法不同于setCharacterStream (int, Reader, int)方法,因为它通知驱动程序参数值应作为CLOB发送到服务。当使用setCharacterStream方法时,驱动程序可能必须做额外的工作来确定参数数据是否应该作为LONGVARCHAR或CLOB发送到服务- 参数:
parameterIndex- 第一个参数的索引是 1,第二个是 2,...reader- 包含要将参数值设置到的数据的对象。length- 参数数据中的字符数。- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误;此方法在关闭的PreparedStatement上调用,或者如果指定的长度小于零。SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setBlob
将指定参数设置为InputStream对象。Inputstream必须包含长度指定的字符数,否则在执行PreparedStatement时将生成SQLException。此方法不同于setBinaryStream (int, InputStream, int)方法,因为它通知驱动程序参数值应作为BLOB发送到服务。当使用setBinaryStream方法时,驱动程序可能必须做额外的工作来确定参数数据是否应该作为LONGVARBINARY或BLOB发送到服务- 参数:
parameterIndex- 第一个参数的索引是 1,第二个是 2,...inputStream- 包含要将参数值设置到的数据的对象。length- 参数数据中的字节数。- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误;此方法在关闭的PreparedStatement上调用;如果指定的长度小于零或InputStream中的字节数与指定的长度不匹配。SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setNClob
将指定参数设置为Reader对象。读取器必须包含长度指定的字符数,否则在执行PreparedStatement时将生成SQLException。此方法不同于setCharacterStream (int, Reader, int)方法,因为它通知驱动程序参数值应作为NCLOB发送到服务。当使用setCharacterStream方法时,驱动程序可能必须做额外的工作来确定参数数据是否应该作为LONGNVARCHAR或NCLOB发送到服务- 参数:
parameterIndex- 第一个参数的索引是 1,第二个是 2,...reader- 包含要将参数值设置到的数据的对象。length- 参数数据中的字符数。- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果指定的长度小于零;如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setSQLXML
将指定参数设置为给定的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
使用给定对象设置指定参数的值。如果第二个参数是
InputStream,则流必须包含由 scaleOrLength 指定的字节数。如果第二个参数是Reader,那么读取器必须包含由 scaleOrLength 指定的字符数。如果这些条件不成立,驱动程序将在执行准备好的语句时生成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 语句中的参数标记;如果发生数据库访问错误;如果 x 指定的 Java 对象是 InputStream 或 Reader 对象并且 scale 参数的值小于零,则调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持指定的 targetSqlType- 参见:
-
setAsciiStream
将指定参数设置为给定的输入流,它将具有指定的字节数。当一个非常大的 ASCII 值输入到LONGVARCHAR参数时,通过java.io.InputStream发送它可能更实用。数据将根据需要从流中读取,直到到达文件末尾。 JDBC 驱动程序将执行从 ASCII 到数据库字符格式的任何必要转换。笔记:此流对象可以是标准 Java 流对象,也可以是您自己实现标准接口的子类。
- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 包含 ASCII 参数值的 Java 输入流length- 流中的字节数- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法- 自从:
- 1.6
-
setBinaryStream
将指定参数设置为给定的输入流,它将具有指定的字节数。当一个非常大的二进制值被输入到LONGVARBINARY参数时,通过java.io.InputStream对象发送它可能更实用。数据将根据需要从流中读取,直到到达文件末尾。笔记:此流对象可以是标准 Java 流对象,也可以是您自己实现标准接口的子类。
- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 包含二进制参数值的 java 输入流length- 流中的字节数- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法- 自从:
- 1.6
-
setCharacterStream
将指定参数设置为给定的Reader对象,它是给定的字符长度。当一个非常大的 UNICODE 值输入到LONGVARCHAR参数时,通过java.io.Reader对象发送它可能更实用。数据将根据需要从流中读取,直到到达文件末尾。 JDBC 驱动程序将执行从 UNICODE 到数据库字符格式的任何必要转换。笔记:此流对象可以是标准 Java 流对象,也可以是您自己实现标准接口的子类。
- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...reader- 包含 Unicode 数据的java.io.Reader对象length- 流中的字符数- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法- 自从:
- 1.6
-
setAsciiStream
将指定参数设置为给定的输入流。当一个非常大的 ASCII 值输入到LONGVARCHAR参数时,通过java.io.InputStream发送它可能更实用。数据将根据需要从流中读取,直到到达文件末尾。 JDBC 驱动程序将执行从 ASCII 到数据库字符格式的任何必要转换。笔记:此流对象可以是标准 Java 流对象,也可以是您自己实现标准接口的子类。
笔记:请查阅您的 JDBC 驱动程序文档以确定使用带长度参数的
setAsciiStream版本是否更有效。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 包含 ASCII 参数值的 Java 输入流- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setBinaryStream
将指定参数设置为给定的输入流。当一个非常大的二进制值被输入到LONGVARBINARY参数时,通过java.io.InputStream对象发送它可能更实用。数据将根据需要从流中读取,直到到达文件末尾。笔记:此流对象可以是标准 Java 流对象,也可以是您自己实现标准接口的子类。
笔记:请查阅您的 JDBC 驱动程序文档以确定使用带长度参数的
setBinaryStream版本是否更有效。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...x- 包含二进制参数值的 java 输入流- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setCharacterStream
将指定参数设置为给定的Reader对象。当一个非常大的 UNICODE 值输入到LONGVARCHAR参数时,通过java.io.Reader对象发送它可能更实用。数据将根据需要从流中读取,直到到达文件末尾。 JDBC 驱动程序将执行从 UNICODE 到数据库字符格式的任何必要转换。笔记:此流对象可以是标准 Java 流对象,也可以是您自己实现标准接口的子类。
笔记:请查阅您的 JDBC 驱动程序文档以确定使用带有长度参数的
setCharacterStream版本是否更有效。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...reader- 包含 Unicode 数据的java.io.Reader对象- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误或在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setNCharacterStream
将指定参数设置为Reader对象。Reader读取数据直到到达文件末尾。驱动程序执行从 Java 字符格式到数据库中国家字符集的必要转换。笔记:此流对象可以是标准 Java 流对象,也可以是您自己实现标准接口的子类。
笔记:请查阅您的 JDBC 驱动程序文档以确定使用带长度参数的
setNCharacterStream版本是否更有效。- 参数:
parameterIndex- 第一个参数是 1,第二个是 2,...value- 参数值- 抛出:
SQLException- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果驱动程序不支持国家字符集;如果驱动程序可以检测到可能发生数据转换错误;如果发生数据库访问错误;或者在关闭的PreparedStatement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.6
-
setClob
将指定参数设置为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
将指定参数设置为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
将指定参数设置为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 SQL异常 使用给定对象设置指定参数的值。如果第二个参数是
InputStream,则流必须包含由 scaleOrLength 指定的字节数。如果第二个参数是Reader,那么读取器必须包含由 scaleOrLength 指定的字符数。如果这些条件不成立,驱动程序将在执行准备好的语句时生成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
- 参见:
-
setObject
使用给定对象设置指定参数的值。此方法类似于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
- 参见:
-
executeLargeUpdate
执行此PreparedStatement对象中的 SQL 语句,该语句必须是 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
-
setCharacterStream