PreparedStatement (Java 2 Platform SE 6)
java.sql
接口 PreparedStatement
- 所有超级接口:
- Statement, Wrapper
- 所有已知子接口:
- CallableStatement
public interface PreparedStatement
- extends Statement
表示预编译的 SQL 语句的对象。
SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。
注: 用于设置 IN 参数值的设置方法(setShort、setString 等等)必须指定与输入参数的已定义 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)
- 另请参见:
- Connection.prepareStatement(java.lang.String), ResultSet
从接口 java.sql.Statement 继承的字段 |
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO |
方法摘要 |
void |
addBatch () 将一组参数添加到此 PreparedStatement 对象的批处理命令中。 |
void |
clearParameters () 立即清除当前参数值。 |
boolean |
execute () 在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。 |
ResultSet |
executeQuery () 在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。 |
int |
executeUpdate () 在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。 |
ResultSetMetaData |
getMetaData () 获取包含有关 ResultSet 对象列信息的 ResultSetMetaData 对象,ResultSet 对象将在执行此 PreparedStatement 对象时返回。 |
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, Blob x) 将指定参数设置为给定 java.sql.Blob 对象。 |
void |
setBlob (int parameterIndex, InputStream inputStream) 将指定参数设置为 InputStream 对象。 |
void |
setBlob (int parameterIndex, InputStream inputStream, long length) 将指定参数设置为 InputStream 对象。 |
void |
setBoolean (int parameterIndex, boolean x) 将指定参数设置为给定 Java boolean 值。 |
void |
setByte (int parameterIndex, byte x) 将指定参数设置为给定 Java byte 值。 |
void |
setBytes (int parameterIndex, byte[] x) 将指定参数设置为给定 Java byte 数组。 |
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, Clob x) 将指定参数设置为给定 java.sql.Clob 对象。 |
void |
setClob (int parameterIndex, Reader reader) 将指定参数设置为 Reader 对象。 |
void |
setClob (int parameterIndex, Reader reader, long length) 将指定参数设置为 Reader 对象。 |
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) 将指定参数设置为给定 Java double 值。 |
void |
setFloat (int parameterIndex, float x) 将指定参数设置为给定 Java REAL 值。 |
void |
setInt (int parameterIndex, int x) 将指定参数设置为给定 Java int 值。 |
void |
setLong (int parameterIndex, long x) 将指定参数设置为给定 Java long 值。 |
void |
setNCharacterStream (int parameterIndex, Reader value) 将指定参数设置为 Reader 对象。 |
void |
setNCharacterStream (int parameterIndex, Reader value, long length) 将指定参数设置为 Reader 对象。 |
void |
setNClob (int parameterIndex, NClob value) 将指定参数设置为 java.sql.NClob 对象。 |
void |
setNClob (int parameterIndex, Reader reader) 将指定参数设置为 Reader 对象。 |
void |
setNClob (int parameterIndex, Reader reader, long length) 将指定参数设置为 Reader 对象。 |
void |
setNString (int parameterIndex, String value) 将指定参数设置为给定 String 对象。 |
void |
setNull (int parameterIndex, int sqlType) 将指定参数设置为 SQL NULL。 |
void |
setNull (int parameterIndex, int sqlType, String typeName) 将指定参数设置为 SQL NULL。 |
void |
setObject (int parameterIndex, Object x) 使用给定对象设置指定参数的值。 |
void |
setObject (int parameterIndex, Object x, int targetSqlType) 使用给定对象设置指定参数的值。 |
void |
setObject (int parameterIndex, Object x, int 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) 将指定参数设置为给定 Java short 值。 |
void |
setSQLXML (int parameterIndex, SQLXML xmlObject) 将指定参数设置为给定 java.sql.SQLXML 对象。 |
void |
setString (int parameterIndex, String x) 将指定参数设置为给定 Java String 值。 |
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) 已过时。 |
void |
setURL (int parameterIndex, URL x) 将指定参数设置为给定 java.net.URL 值。 |
从接口 java.sql.Statement 继承的方法 |
addBatch, cancel, clearBatch, clearWarnings, close, execute, execute, execute, execute, executeBatch, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, isClosed, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout |
从接口 java.sql.Wrapper 继承的方法 |
isWrapperFor, unwrap |
executeQuery
ResultSet executeQuery
()
throws SQLException
- 在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。
-
- 返回:
- 包含该查询生成的数据的 ResultSet 对象;不会返回 null
- 抛出:
- SQLException - 如果发生数据库访问错误,在关闭的 PreparedStatement 上调用此方法,或者 SQL 语句没有返回 ResultSet 对象
executeUpdate
int executeUpdate
()
throws SQLException
- 在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。
-
- 返回:
- (1) SQL 数据操作语言 (DML) 语句的行数 (2) 对于无返回内容的 SQL 语句,返回 0
- 抛出:
- SQLException - 如果发生数据库访问错误,在关闭的 PreparedStatement 上调用此方法,或者 SQL 语句返回一个 ResultSet 对象
setNull
void setNull
(int parameterIndex,
int sqlType)
throws SQLException
- 将指定参数设置为 SQL NULL。
注: 必须指定参数的 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
- 将指定参数设置为给定 Java boolean 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL BIT 或 BOOLEAN 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setByte
void setByte
(int parameterIndex,
byte x)
throws SQLException
- 将指定参数设置为给定 Java byte 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL TINYINT 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setShort
void setShort
(int parameterIndex,
short x)
throws SQLException
- 将指定参数设置为给定 Java short 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL SMALLINT 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setInt
void setInt
(int parameterIndex,
int x)
throws SQLException
- 将指定参数设置为给定 Java int 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL INTEGER 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setLong
void setLong
(int parameterIndex,
long x)
throws SQLException
- 将指定参数设置为给定 Java long 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL BIGINT 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setFloat
void setFloat
(int parameterIndex,
float x)
throws SQLException
- 将指定参数设置为给定 Java REAL 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL FLOAT 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setDouble
void setDouble
(int parameterIndex,
double x)
throws SQLException
- 将指定参数设置为给定 Java double 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL DOUBLE 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setBigDecimal
void setBigDecimal
(int parameterIndex,
BigDecimal x)
throws SQLException
- 将指定参数设置为给定 java.math.BigDecimal 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL NUMERIC 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setString
void setString
(int parameterIndex,
String x)
throws SQLException
- 将指定参数设置为给定 Java String 值。在将此值发送给数据库时,驱动程序将它转换成一个 SQL VARCHAR 或 LONGVARCHAR 值(取决于该参数相对于驱动程序在 VARCHAR 值上的限制的大小)。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setBytes
void setBytes
(int parameterIndex,
byte[] x)
throws SQLException
- 将指定参数设置为给定 Java byte 数组。在将此值发送给数据库时,驱动程序将它转换成一个 SQL VARBINARY 或 LONGVARBINARY 值(取决于该参数相对于驱动程序在 VARBINARY 值上的限制的大小)。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setDate
void setDate
(int parameterIndex,
Date x)
throws SQLException
- 使用运行应用程序的虚拟机的默认时区将指定参数设置为给定 java.sql.Date 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL DATE 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setTime
void setTime
(int parameterIndex,
Time x)
throws SQLException
- 将指定参数设置为给定 java.sql.Time 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL TIME 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
setTimestamp
void setTimestamp
(int parameterIndex,
Timestamp x)
throws SQLException
- 将指定参数设置为给定 java.sql.Timestamp 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL TIMESTAMP 值。
-
- 参数:
- 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
void setUnicodeStream
(int parameterIndex,
InputStream x,
int length)
throws SQLException
- 已过时。
- 将指定参数设置为给定输入流,该输入流将具有给定字节数。在将一个非常大的 Unicode 值输入到 LONGVARCHAR 参数时,通过 java.io.InputStream 对象发送它可能更为实际。将根据需要从流中读取数据,一直读取到文件末尾。JDBC 驱动程序将执行从 Unicode 到数据库 char 格式的任何必要转换。根据 Java 虚拟机规范中的定义,Unicode 流的字节格式必须是 Java UTF-8。
注: 此流对象既可以是一个标准 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
- 使用给定对象设置指定参数的值。除了假定 scale 为 0,此方法类似于上面的 setObject 方法。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 包含输入参数值的对象
- targetSqlType - 将发送给数据库的 SQL 类型(定义于 java.sql.Types 中)
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 targetSqlType 是 ARRAY、BLOB、CLOB、DATALINK、JAVA_OBJECT、NCHAR、NCLOB、NVARCHAR、LONGNVARCHAR、REF、ROWID、SQLXML 或 STRUCT 数据类型之一并且 JDBC 驱动程序不支持此数据类型
- 另请参见:
- Types
setObject
void setObject
(int parameterIndex,
Object x)
throws SQLException
-
使用给定对象设置指定参数的值。第二个参数必须是 Object 类型;所以,应该对内置类型使用 java.lang 的等效对象。
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 获取任何后续结果。
-
- 返回:
- 如果第一个结果是 ResultSet 对象,则返回 true;如果第一个结果是更新计数或者没有结果,则返回 false
- 抛出:
- SQLException - 如果发生数据库访问错误;在关闭的 PreparedStatement 上调用此方法,或者为此方法提供了参数
- 另请参见:
- 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>) 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL REF 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 一个 SQL REF 值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.2
setBlob
void setBlob
(int parameterIndex,
Blob x)
throws SQLException
- 将指定参数设置为给定 java.sql.Blob 对象。在将此对象发送到数据库时,驱动程序将它转换成一个 SQL BLOB 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 一个映射 SQL BLOB 值的 Blob 对象
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.2
setClob
void setClob
(int parameterIndex,
Clob x)
throws SQLException
- 将指定参数设置为给定 java.sql.Clob 对象。在将此对象发送到数据库时,驱动程序将它转换成一个 SQL CLOB 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 一个映射 SQL Clob 值的 Clob 对象
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.2
setArray
void setArray
(int parameterIndex,
Array x)
throws SQLException
- 将指定参数设置为给定 java.sql.Array 对象。在将此对象发送到数据库时,驱动程序将它转换成一个 SQL ARRAY 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 一个映射 SQL Array 值的 Array 对象
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.2
getMetaData
ResultSetMetaData getMetaData
()
throws SQLException
- 获取包含有关 ResultSet 对象列信息的 ResultSetMetaData 对象,ResultSet 对象将在执行此 PreparedStatement 对象时返回。
因为 PreparedStatement 对象被预编译,所以不必执行就可以知道它将返回的 ResultSet 对象。因此,可以对 PreparedStatement 对象调用 getMetaData 方法,而不必等待执行该对象,然后再对返回的 ResultSet 对象调用 ResultSet.getMetaData 方法。
注: 对于某些缺乏底层 DBMS 支持的驱动程序,使用此方法开销可能很大。
-
- 返回:
- ResultSet 对象列的描述;如果驱动程序无法返回一个 ResultSetMetaData 对象,则返回 null
- 抛出:
- SQLException - 如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.2
setDate
void setDate
(int parameterIndex,
Date x,
Calendar cal)
throws SQLException
- 使用给定的 Calendar 对象将指定参数设置为给定 java.sql.Date 值。驱动程序使用 Calendar 对象构造一个 SQL DATE 值,该值随后被驱动程序发送给数据库。利用 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 对象构造一个 SQL TIME 值,该值随后被驱动程序发送给数据库。利用 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 对象构造一个 SQL TIMESTAMP 值,该值随后被驱动程序发送给数据库。利用 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
- 将指定参数设置为 SQL NULL。这种形式的 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 值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL DATALINK 值。
-
- 参数:
- 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 对象。在将此对象发送到数据库时,驱动程序将它转换成一个 SQL ROWID 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- x - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.6
setNString
void setNString
(int parameterIndex,
String value)
throws SQLException
- 将指定参数设置为给定 String 对象。在将此对象发送给数据库时,驱动程序将它转换成一个 SQL NCHAR、NVARCHAR 或 LONGNVARCHAR 值(取决于该参数相对于驱动程序在 NVARCHAR 值上的限制的大小)。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- value - 参数值
- 抛出:
- 如果 - parameterIndex 不对应于 SQL 语句中的参数标记;如果驱动程序不支持国家字符 (national character) 集;如果驱动程序检测到可能发生数据转换错误;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- SQLException
- 从以下版本开始:
- 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 对象。在将此对象发送到数据库时,驱动程序将它转换成一个 SQL NCLOB 值。
-
- 参数:
- parameterIndex - 第一个参数是 1,第二个参数是 2,……
- value - 参数值
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果驱动程序不支持国家字符集;如果驱动程序检测到可能发生数据转换错误;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.6
setClob
void setClob
(int parameterIndex,
Reader reader,
long length)
throws SQLException
- 将指定参数设置为 Reader 对象。Reader 必须包含 length 指定的字符数,否则在执行 PreparedStatement 时将生成一个 SQLException。此方法不同于 setCharacterStream (int, Reader, int) 方法,因为它会通知驱动程序应该将参数值作为 CLOB 发送给服务器。在使用 setCharacterStream 方法时,驱动程序可能必须做一些额外的工作,以确定应该将参数数据作为 LONGVARCHAR 还是 CLOB 发送给服务器。
-
- 参数:
- parameterIndex - 第一个参数的索引是 1,第二个参数的索引是 2,……
- reader - 包含用于设置参数值的数据的对象。
- length - 参数数据中的字符数。
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误;在关闭的 PreparedStatement 上调用此方法,如果指定的长度小于 0。
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.6
setBlob
void setBlob
(int parameterIndex,
InputStream inputStream,
long length)
throws SQLException
- 将指定参数设置为 InputStream 对象。Inputstream 必须包含 length 指定的字符数,否则在执行 PreparedStatement 时将生成一个 SQLException。此方法不同于 setBinaryStream (int, InputStream, int) 方法,因为它会通知驱动程序应该将参数值作为 BLOB 发送给服务器。在使用 setBinaryStream 方法时,驱动程序可能必须做一些额外的工作,以确定应该将参数数据作为 LONGVARBINARY 还是 BLOB 发送给服务器。
-
- 参数:
- parameterIndex - 第一个参数的索引是 1,第二个参数的索引是 2,……
- inputStream - 包含用于设置参数值的数据的对象。
- length - 参数数据中的字节数。
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误;在关闭的 PreparedStatement 上调用此方法,如果指定长度小于 0,或者输入流中的字节数与指定长度不匹配。
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.6
setNClob
void setNClob
(int parameterIndex,
Reader reader,
long length)
throws SQLException
- 将指定参数设置为 Reader 对象。Reader 必须包含 length 指定的字符数,否则在执行 PreparedStatement 时将生成一个 SQLException。此方法不同于 setCharacterStream (int, Reader, int) 方法,因为它会通知驱动程序应该将参数值作为 NCLOB 发送给服务器。在使用 setCharacterStream 方法时,驱动程序可能必须做一些额外的工作,以确定应该将参数数据作为 LONGNVARCHAR 还是 NCLOB 发送给服务器。
-
- 参数:
- parameterIndex - 第一个参数的索引是 1,第二个参数的索引是 2,……
- reader - 包含用于设置参数值的数据的对象。
- length - 参数数据中的字符数。
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果指定长度小于 0;如果驱动程序不支持国家字符集;如果驱动程序检测到可能发生数据转换错误;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.6
setSQLXML
void setSQLXML
(int parameterIndex,
SQLXML xmlObject)
throws SQLException
- 将指定参数设置为给定 java.sql.SQLXML 对象。在将此对象发送到数据库时,驱动程序将它转换成一个 SQL XML 值。
-
- 参数:
- parameterIndex - 第一个参数的索引是 1,第二个参数的索引是 2,……
- xmlObject - 映射 SQL XML 值的 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
-
使用给定对象设置指定参数的值。第二个参数必须是一个对象类型;对于整数值,应该使用 java.lang 的等效对象。 如果第二个参数是一个 InputStream,则该流必须包含 scaleOrLength 指定的字节数。如果第二个参数是一个 Reader,则该 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 类型,此值是小数点后的位数。对于 Java Object 类型 InputStream 和 Reader,此值是流或 Reader 中数据的长度。对于所有其他类型,忽略此值。
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误;如果在关闭的 PreparedStatement 上调用此方法,或者 x 指定的 Java Object 是一个 InputStream 或 Reader 对象,并且 scale 参数的值小于 0
- SQLFeatureNotSupportedException - 如果 targetSqlType 是 ARRAY、BLOB、CLOB、DATALINK、JAVA_OBJECT、NCHAR、NCLOB、NVARCHAR、LONGNVARCHAR、REF、ROWID、SQLXML 或 STRUCT 数据类型之一,并且 JDBC 驱动程序不支持此数据类型
- 从以下版本开始:
- 1.6
- 另请参见:
- 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 驱动程序文档,以确定使用带 length 参数的 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 驱动程序文档,以确定使用带 length 参数的 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 驱动程序文档,以确定使用带 length 参数的 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 驱动程序文档,以确定使用带 length 参数的 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 驱动程序文档,以确定使用带 length 参数的 setClob 是否更有效。
-
- 参数:
- parameterIndex - 第一个参数的索引是 1,第二个参数的索引是 2,……
- reader - 包含用于设置参数值的数据的对象。
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误;在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.6
setBlob
void setBlob
(int parameterIndex,
InputStream inputStream)
throws SQLException
- 将指定参数设置为 InputStream 对象。此方法不同于 setBinaryStream (int, InputStream) 方法,因为它会通知驱动程序应该将参数值作为 BLOB 发送给服务器。在使用 setBinaryStream 方法时,驱动程序可能必须做一些额外的工作,以确定应该将参数数据作为 LONGVARBINARY 还是 BLOB 发送给服务器。
注: 查询 JDBC 驱动程序文档,以确定使用带 length 参数的 setBlob 是否更有效。
-
- 参数:
- parameterIndex - 第一个参数的索引是 1,第二个参数的索引是 2,……
- inputStream - 包含用于设置参数值的数据的对象。
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误;在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始:
- 1.6
setNClob
void setNClob
(int parameterIndex,
Reader reader)
throws SQLException
- 将指定参数设置为 Reader 对象。此方法不同于 setCharacterStream (int, Reader) 方法,因为它会通知驱动程序应该将参数值作为 NCLOB 发送给服务器。在使用 setCharacterStream 方法时,驱动程序可能必须做一些额外的工作,以确定应该将参数数据作为 LONGNVARCHAR 还是 NCLOB 发送给服务器。
注: 查询 JDBC 驱动程序文档,以确定使用带 length 参数的 setNClob 是否更有效。
-
- 参数:
- parameterIndex - 第一个参数的索引是 1,第二个参数的索引是 2,……
- reader - 包含用于设置参数值的数据的对象。
- 抛出:
- SQLException - 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果驱动程序不支持国家字符集;如果驱动程序检测到可能发生数据转换错误;如果发生数据库访问错误,或者在关闭的 PreparedStatement 上调用此方法
- SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
- 从以下版本开始: