|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
public interface PreparedStatement
表示预编译的 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.Wrapper 继承的方法 |
---|
isWrapperFor, unwrap |
方法详细信息 |
---|
ResultSet executeQuery() throws SQLException
PreparedStatement
对象中执行 SQL 查询,并返回该查询生成的
ResultSet
对象。
ResultSet
对象;不会返回
null
SQLException
- 如果发生数据库访问错误,在关闭的
PreparedStatement
上调用此方法,或者 SQL 语句没有返回
ResultSet
对象
int executeUpdate() throws SQLException
PreparedStatement
对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如
INSERT
、
UPDATE
或
DELETE
语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。
SQLException
- 如果发生数据库访问错误,在关闭的
PreparedStatement
上调用此方法,或者 SQL 语句返回一个
ResultSet
对象
void setNull(int parameterIndex, int sqlType) throws SQLException
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 驱动程序不支持此数据类型
void setBoolean(int parameterIndex, boolean x) throws SQLException
boolean
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
BIT
或
BOOLEAN
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setByte(int parameterIndex, byte x) throws SQLException
byte
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
TINYINT
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setShort(int parameterIndex, short x) throws SQLException
short
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
SMALLINT
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setInt(int parameterIndex, int x) throws SQLException
int
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
INTEGER
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setLong(int parameterIndex, long x) throws SQLException
long
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
BIGINT
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setFloat(int parameterIndex, float x) throws SQLException
REAL
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
FLOAT
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setDouble(int parameterIndex, double x) throws SQLException
double
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
DOUBLE
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException
java.math.BigDecimal
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
NUMERIC
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setString(int parameterIndex, String x) throws SQLException
String
值。在将此值发送给数据库时,驱动程序将它转换成一个 SQL
VARCHAR
或
LONGVARCHAR
值(取决于该参数相对于驱动程序在
VARCHAR
值上的限制的大小)。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setBytes(int parameterIndex, byte[] x) throws SQLException
VARBINARY
或
LONGVARBINARY
值(取决于该参数相对于驱动程序在
VARBINARY
值上的限制的大小)。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setDate(int parameterIndex, Date x) throws SQLException
java.sql.Date
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
DATE
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setTime(int parameterIndex, Time x) throws SQLException
java.sql.Time
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
TIME
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setTimestamp(int parameterIndex, Timestamp x) throws SQLException
java.sql.Timestamp
值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL
TIMESTAMP
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException
LONGVARCHAR
参数时,通过
java.io.InputStream
发送它可能更为实际。将根据需要从流中读取数据,一直读取到文件末尾。JDBC 驱动程序将执行从 ASCII 到数据库 char 格式的任何必要转换。
注:此流对象既可以是一个标准 Java 流对象,也可以是实现标准接口的用户自己的子类。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 包含 ASCII 参数值的 Java 输入流
length
- 流中的字节数
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException
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 驱动程序不支持此方法
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
上调用此方法
void clearParameters() throws SQLException
通常参数值对语句的重复使用仍然有效。设置一个参数值会自动清除其以前的值。不过,在某些情况下,直接释放当前参数值使用的资源也是很有用的;这可以通过调用 clearParameters
方法实现。
SQLException
- 如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException
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
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
上调用此方法,或者给定对象的类型不明确
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()
void addBatch() throws SQLException
PreparedStatement
对象的批处理命令中。
SQLException
- 如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
Statement.addBatch(java.lang.String)
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
上调用此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
ResultSetMetaData getMetaData() throws SQLException
ResultSet
对象列信息的
ResultSetMetaData
对象,
ResultSet
对象将在执行此
PreparedStatement
对象时返回。
因为 PreparedStatement
对象被预编译,所以不必执行就可以知道它将返回的 ResultSet
对象。因此,可以对 PreparedStatement
对象调用 getMetaData
方法,而不必等待执行该对象,然后再对返回的 ResultSet
对象调用 ResultSet.getMetaData
方法。
注:对于某些缺乏底层 DBMS 支持的驱动程序,使用此方法开销可能很大。
ResultSet
对象列的描述;如果驱动程序无法返回一个
ResultSetMetaData
对象,则返回
null
SQLException
- 如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
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
上调用此方法
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
上调用此方法
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
上调用此方法
void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException
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 驱动程序不支持此方法
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 驱动程序不支持此方法
ParameterMetaData getParameterMetaData() throws SQLException
PreparedStatement
对象的参数的编号、类型和属性。
ParameterMetaData
对象,它包含有关此
PreparedStatement
对象的每个参数标记的编号、类型和属性的信息
SQLException
- 如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
ParameterMetaData
void setRowId(int parameterIndex, RowId x) throws SQLException
java.sql.RowId
对象。在将此对象发送到数据库时,驱动程序将它转换成一个 SQL
ROWID
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
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
void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException
Reader
对象。
Reader
将读取数据,直到到达文件末尾。驱动程序执行从 Java 字符格式到数据库中国家字符集的必要转换。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
value
- 参数值
length
- 参数数据中的字符数。
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果驱动程序不支持国家字符集;如果驱动程序检测到可能发生数据转换错误;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
void setNClob(int parameterIndex, NClob value) throws SQLException
java.sql.NClob
对象。在将此对象发送到数据库时,驱动程序将它转换成一个 SQL
NCLOB
值。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
value
- 参数值
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果驱动程序不支持国家字符集;如果驱动程序检测到可能发生数据转换错误;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此数据类型
Types
void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException
LONGVARCHAR
参数时,通过
java.io.InputStream
发送它可能更为实际。将根据需要从流中读取数据,一直读取到文件末尾。JDBC 驱动程序将执行从 ASCII 到数据库 char 格式的任何必要转换。
注:此流对象既可以是一个标准 Java 流对象,也可以是实现标准接口的用户自己的子类。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 包含 ASCII 参数值的 Java 输入流
length
- 流中的字节数
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
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
上调用此方法
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
上调用此方法
void setAsciiStream(int parameterIndex, InputStream x) throws SQLException
LONGVARCHAR
参数时,通过
java.io.InputStream
发送它可能更为实际。将根据需要从流中读取数据,一直读取到文件末尾。JDBC 驱动程序将执行从 ASCII 到数据库 char 格式的任何必要转换。
注:此流对象既可以是一个标准 Java 流对象,也可以是实现标准接口的用户自己的子类。
注:查询 JDBC 驱动程序文档,以确定使用带 length 参数的 setAsciiStream
是否更有效。
parameterIndex
- 第一个参数是 1,第二个参数是 2,……
x
- 包含 ASCII 参数值的 Java 输入流
SQLException
- 如果 parameterIndex 不对应于 SQL 语句中的参数标记;如果发生数据库访问错误,或者在关闭的
PreparedStatement
上调用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
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 驱动程序不支持此方法
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。