|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
public interface Statement
用于执行静态 SQL 语句并返回它所生成结果的对象。
在默认情况下,同一时间每个 Statement
对象在只能打开一个 ResultSet
对象。因此,如果读取一个 ResultSet
对象与读取另一个交叉,则这两个对象必须是由不同的 Statement
对象生成的。如果存在某个语句的打开的当前 ResultSet
对象,则 Statement
接口中的所有执行方法都会隐式关闭它。
Connection.createStatement()
,
ResultSet
字段摘要 | |
---|---|
static int |
CLOSE_ALL_RESULTS 该常量指示调用 getMoreResults 时应该关闭以前一直打开的所有 ResultSet 对象。 |
static int |
CLOSE_CURRENT_RESULT 该常量指示调用 getMoreResults 时应该关闭当前 ResultSet 对象。 |
static int |
EXECUTE_FAILED 该常量指示在执行批量语句时发生错误。 |
static int |
KEEP_CURRENT_RESULT 该常量指示调用 getMoreResults 时应该关闭当前 ResultSet 对象。 |
static int |
NO_GENERATED_KEYS 该常量指示生成的键应该不可用于获取。 |
static int |
RETURN_GENERATED_KEYS 该常量指示生成的键应该可用于获取。 |
static int |
SUCCESS_NO_INFO 该常量指示批量语句执行成功但不存在受影响的可用行数计数。 |
方法摘要 | |
---|---|
void |
addBatch(String sql) 将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。 |
void |
cancel() 如果 DBMS 和驱动程序都支持中止 SQL 语句,则取消此 Statement 对象。 |
void |
clearBatch() 清空此 Statement 对象的当前 SQL 命令列表。 |
void |
clearWarnings() 清除在此 Statement 对象上报告的所有警告。 |
void |
close() 立即释放此 Statement 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。 |
boolean |
execute(String sql) 执行给定的 SQL 语句,该语句可能返回多个结果。 |
boolean |
execute(String sql, int autoGeneratedKeys) 执行给定的 SQL 语句(该语句可能返回多个结果),并通知驱动程序所有自动生成的键都应该可用于获取。 |
boolean |
execute(String sql, int[] columnIndexes) 执行给定的 SQL 语句(该语句可能返回多个结果),并通知驱动程序在给定数组中指示的自动生成的键应该可用于获取。 |
boolean |
execute(String sql, String[] columnNames) 执行给定的 SQL 语句(该语句可能返回多个结果),并通知驱动程序在给定数组中指示的自动生成的键应该可用于获取。 |
int[] |
executeBatch() 将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。 |
ResultSet |
executeQuery(String sql) 执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。 |
int |
executeUpdate(String sql) 执行给定 SQL 语句,该语句可能为 INSERT 、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。 |
int |
executeUpdate(String sql, int autoGeneratedKeys) 执行给定的 SQL 语句,并用给定标志通知驱动程序由此 Statement 生成的自动生成键是否可用于获取。 |
int |
executeUpdate(String sql, int[] columnIndexes) 执行给定的 SQL 语句,并通知驱动程序在给定数组中指示的自动生成的键应该可用于获取。 |
int |
executeUpdate(String sql, String[] columnNames) 执行给定的 SQL 语句,并通知驱动程序在给定数组中指示的自动生成的键应该可用于获取。 |
Connection |
getConnection() 获取生成此 Statement 对象的 Connection 对象。 |
int |
getFetchDirection() 获取从数据库表获取行的方向,该方向是根据此 Statement 对象生成的结果集合的默认值。 |
int |
getFetchSize() 获取结果集合的行数,该数是根据此 Statement 对象生成的 ResultSet 对象的默认获取大小。 |
ResultSet |
getGeneratedKeys() 获取由于执行此 Statement 对象而创建的所有自动生成的键。 |
int |
getMaxFieldSize() 获取可以为此 Statement 对象所生成 ResultSet 对象中的字符和二进制列值返回的最大字节数。 |
int |
getMaxRows() 获取由此 Statement 对象生成的 ResultSet 对象可以包含的最大行数。 |
boolean |
getMoreResults() 移动到此 Statement 对象的下一个结果,如果其为 ResultSet 对象,则返回 true ,并隐式关闭利用方法 getResultSet 获取的所有当前 ResultSet 对象。 |
boolean |
getMoreResults(int current) 将此 Statement 对象移动到下一个结果,根据给定标志指定的指令处理所有当前 ResultSet 对象;如果下一个结果为 ResultSet 对象,则返回 true 。 |
int |
getQueryTimeout() 获取驱动程序等待 Statement 对象执行的秒数。 |
ResultSet |
getResultSet() 以 ResultSet 对象的形式获取当前结果。 |
int |
getResultSetConcurrency() 获取此 Statement 对象生成的 ResultSet 对象的结果集合并发性。 |
int |
getResultSetHoldability() 获取此 Statement 对象生成的 ResultSet 对象的结果集合可保存性。 |
int |
getResultSetType() 获取此 Statement 对象生成的 ResultSet 对象的结果集合类型。 |
int |
getUpdateCount() 以更新计数的形式获取当前结果;如果结果为 ResultSet 对象或没有更多结果,则返回 -1。 |
SQLWarning |
getWarnings() 获取此 Statement 对象上的调用报告的第一个警告。 |
boolean |
isClosed() 获取是否已关闭了此 Statement 对象。 |
boolean |
isPoolable() 返回指示 Statement 是否是可池化的值。 |
void |
setCursorName(String name) 将 SQL 指针名称设置为给定的 String ,后续 Statement 对象的 execute 方法将使用此字符串。 |
void |
setEscapeProcessing(boolean enable) 将转义处理设置为开或关。 |
void |
setFetchDirection(int direction) 向驱动程序提供关于方向的提示,在使用此 Statement 对象创建的 ResultSet 对象中将按该方向处理行。 |
void |
setFetchSize(int rows) 为 JDBC 驱动程序提供一个提示,它提示此 Statement 生成的 ResultSet 对象需要更多行时应该从数据库获取的行数。 |
void |
setMaxFieldSize(int max) 设置此 Statement 对象生成的 ResultSet 对象中字符和二进制列值可以返回的最大字节数限制。 |
void |
setMaxRows(int max) 将此 Statement 对象生成的所有 ResultSet 对象可以包含的最大行数限制设置为给定数。 |
void |
setPoolable(boolean poolable) 请求将 Statement 池化或非池化。 |
void |
setQueryTimeout(int seconds) 将驱动程序等待 Statement 对象执行的秒数设置为给定秒数。 |
从接口 java.sql.Wrapper 继承的方法 |
---|
isWrapperFor, unwrap |
字段详细信息 |
---|
static final int CLOSE_CURRENT_RESULT
getMoreResults
时应该关闭当前
ResultSet
对象。
static final int KEEP_CURRENT_RESULT
getMoreResults
时应该关闭当前
ResultSet
对象。
static final int CLOSE_ALL_RESULTS
getMoreResults
时应该关闭以前一直打开的所有
ResultSet
对象。
static final int SUCCESS_NO_INFO
static final int EXECUTE_FAILED
static final int RETURN_GENERATED_KEYS
static final int NO_GENERATED_KEYS
方法详细信息 |
---|
ResultSet executeQuery(String sql) throws SQLException
ResultSet
对象。
sql
- 要发送给数据库的 SQL 语句,通常为静态 SQL
SELECT
语句
ResultSet
对象;永远不能为
null
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者给定 SQL 语句生成单个
ResultSet
对象之外的任何其他内容
int executeUpdate(String sql) throws SQLException
INSERT
、
UPDATE
或
DELETE
语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。
sql
- SQL 数据操作语言(Data Manipulation Language,DML)语句,如
INSERT
、
UPDATE
或
DELETE
;或者不返回任何内容的 SQL 语句,如 DDL 语句。
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者给定的 SQL 语句生成
ResultSet
对象
void close() throws SQLException
Statement
对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。一般来说,使用完后立即释放资源是一个好习惯,这样可以避免对数据库资源的占用。
在已经关闭的 Statement
对象上调用 close
方法无效。
注:关闭 Statement
对象时,还将同时关闭其当前的 ResultSet
对象(如果有)。
SQLException
- 如果发生数据库访问错误
int getMaxFieldSize() throws SQLException
Statement
对象所生成
ResultSet
对象中的字符和二进制列值返回的最大字节数。此限制仅应用于
BINARY
、
VARBINARY
、
LONGVARBINARY
、
CHAR
、
VARCHAR
、
NCHAR
、
NVARCHAR
、
LONGNVARCHAR
和
LONGVARCHAR
列。如果超过了该限制,则直接丢弃多出的数据。
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
setMaxFieldSize(int)
void setMaxFieldSize(int max) throws SQLException
Statement
对象生成的
ResultSet
对象中字符和二进制列值可以返回的最大字节数限制。此限制仅应用于
BINARY
、
VARBINARY
、
LONGVARBINARY
、
CHAR
、
VARCHAR
、
NCHAR
、
NVARCHAR
、
LONGNVARCHAR
和
LONGVARCHAR
字段。如果超过了该限制,则直接丢弃多出的数据。为了获得最大的可移植性,应该使用大于 256 的值。
max
- 以字节为单位的新列大小限制;0 表示没有任何限制
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者不满足条件 max >= 0
getMaxFieldSize()
int getMaxRows() throws SQLException
Statement
对象生成的
ResultSet
对象可以包含的最大行数。如果超过了此限制,则直接撤消多出的行。
Statement
对象生成的
ResultSet
对象的当前最大行数;0 表示不存在任何限制
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
setMaxRows(int)
void setMaxRows(int max) throws SQLException
Statement
对象生成的所有
ResultSet
对象可以包含的最大行数限制设置为给定数。如果超过了该限制,则直接撤消多出的行。
max
- 新的最大行数限制;0 表示没有任何限制
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者不满足条件 max >= 0
getMaxRows()
void setEscapeProcessing(boolean enable) throws SQLException
PreparedStatements
对象禁用转义处理无效。
enable
- 为
true
表示启用转义处理;为
false
表示禁用转义处理
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
int getQueryTimeout() throws SQLException
Statement
对象执行的秒数。如果超过该限制,则抛出
SQLException
。
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
setQueryTimeout(int)
void setQueryTimeout(int seconds) throws SQLException
Statement
对象执行的秒数设置为给定秒数。如果超过该限制,则抛出
SQLException
。JDBC 驱动程序必须将此限制应用于
execute
、
executeQuery
和
executeUpdate
方法。JDBC 驱动程序实现也可以将此限制应用于
ResultSet
方法(有关详细信息,请参考驱动程序供应商文档)。
seconds
- 以秒为单位的查询超时限制;0 表示没有任何限制
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者不满足条件 seconds >= 0
getQueryTimeout()
void cancel() throws SQLException
Statement
对象。一个线程可以使用此方法取消另一个线程正在执行的语句。
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
SQLWarning getWarnings() throws SQLException
Statement
对象上的调用报告的第一个警告。后续的
Statement
对象警告将链接到此
SQLWarning
对象上。
每次(重新)执行语句时,都会自动清除警告链。不可以在关闭的 Statement
对象上调用此方法,这样做将导致抛出 SQLException
。
注:如果要处理 ResultSet
对象,则与该 ResultSet
对象上的读操作相关联的所有警告都链接到它上面,而不是链接到生成它的 Statement
对象上。
SQLWarning
对象;如果不存在任何警告,则返回
null
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
void clearWarnings() throws SQLException
Statement
对象上报告的所有警告。调用此方法后,在为此
Statement
对象报告新的警告之前,
getWarnings
方法将一直返回
null
。
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
void setCursorName(String name) throws SQLException
String
,后续
Statement
对象的
execute
方法将使用此字符串。然后,可以在 SQL 位置更新或删除语句中使用该名称来标识由此语句生成的
ResultSet
对象中的当前行。如果数据库不支持位置更新/删除,则此方法为无操作 (noop)。为了确保指针具有支持更新的适当隔离级别,指针的
SELECT
语句的形式应该为
SELECT FOR UPDATE
。如果
FOR UPDATE
不存在,则位置更新可能失败。
注:按照定义,位置更新和删除必须由生成的用于放置的 ResultSet
对象之外的某个 Statement
对象来执行。此外,在连接中指针名称还必须是唯一的。
name
- 新指针名称,该名称在连接中必须是唯一的
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
boolean execute(String sql) throws SQLException
execute
方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSet
或 getUpdateCount
来获取结果,使用 getMoreResults
来移动后续结果。
sql
- 任何 SQL 语句
ResultSet
对象,则返回
true
;如果其为更新计数或者不存在任何结果,则返回
false
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
getResultSet()
,
getUpdateCount()
,
getMoreResults()
ResultSet getResultSet() throws SQLException
ResultSet
对象的形式获取当前结果。每个结果只应调用一次此方法。
ResultSet
对象的形式返回当前结果;如果结果是更新计数或没有更多的结果,则返回
null
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
execute(java.lang.String)
int getUpdateCount() throws SQLException
ResultSet
对象或没有更多结果,则返回 -1。每个结果只应调用一次此方法。
ResultSet
对象或没有更多结果,则返回 -1
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
execute(java.lang.String)
boolean getMoreResults() throws SQLException
Statement
对象的下一个结果,如果其为
ResultSet
对象,则返回
true
,并隐式关闭利用方法
getResultSet
获取的所有当前
ResultSet
对象。
当以下表达式为 true 时没有更多结果:
// stmt is a Statement object ((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
ResultSet
对象,则返回
true
;如果其为更新计数或不存在更多结果,则返回
false
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
execute(java.lang.String)
void setFetchDirection(int direction) throws SQLException
Statement
对象创建的
ResultSet
对象中将按该方向处理行。默认值为
ResultSet.FETCH_FORWARD
。
注意,此方法为此 Statement
对象生成的结果集合设置默认获取方向。每个结果集合都具有它自己用于获取和设置其自身获取方向的方法。
direction
- 用于处理行的初始方向
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者给定的方向不是
ResultSet.FETCH_FORWARD
、
ResultSet.FETCH_REVERSE
和
ResultSet.FETCH_UNKNOWN
之一
getFetchDirection()
int getFetchDirection() throws SQLException
Statement
对象生成的结果集合的默认值。如果此
Statement
对象没有通过调用方法
setFetchDirection
设置获取方向,则返回值是特定于实现的。
Statement
对象生成的结果集合的默认获取方向
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
setFetchDirection(int)
void setFetchSize(int rows) throws SQLException
Statement
生成的
ResultSet
对象需要更多行时应该从数据库获取的行数。指定的行数仅影响使用此语句创建的结果集合。如果指定的值为 0,则忽略该提示。默认值为 0。
rows
- 要获取的行数
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者不满足条件
rows >= 0
。
getFetchSize()
int getFetchSize() throws SQLException
Statement
对象生成的
ResultSet
对象的默认获取大小。如果此
Statement
对象没有通过调用方法
setFetchSize
设置获取大小,则返回值是特定于实现的。
Statement
对象生成的结果集合的默认获取大小
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
setFetchSize(int)
int getResultSetConcurrency() throws SQLException
Statement
对象生成的
ResultSet
对象的结果集合并发性。
ResultSet.CONCUR_READ_ONLY
或
ResultSet.CONCUR_UPDATABLE
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
int getResultSetType() throws SQLException
Statement
对象生成的
ResultSet
对象的结果集合类型。
ResultSet.TYPE_FORWARD_ONLY
、
ResultSet.TYPE_SCROLL_INSENSITIVE
或
ResultSet.TYPE_SCROLL_SENSITIVE
之一
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
void addBatch(String sql) throws SQLException
Statement
对象的当前命令列表中。通过调用方法
executeBatch
可以批量执行此列表中的命令。
sql
- 通常此参数为 SQL
INSERT
或
UPDATE
语句
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者驱动程序不支持批量更新
executeBatch()
,
DatabaseMetaData.supportsBatchUpdates()
void clearBatch() throws SQLException
Statement
对象的当前 SQL 命令列表。
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者驱动程序不支持批量更新
addBatch(java.lang.String)
,
DatabaseMetaData.supportsBatchUpdates()
int[] executeBatch() throws SQLException
int
元素的排序对应于批中的命令,批中的命令根据被添加到批中的顺序排序。方法
executeBatch
返回的数组中的元素可能为以下元素之一:
SUCCESS_NO_INFO
的值 - 指示成功执行了命令,但受影响的行数是未知的 如果批量更新中的命令之一无法正确执行,则此方法抛出 BatchUpdateException
,并且 JDBC 驱动程序可能继续处理批处理中的剩余命令,也可能不执行。无论如何,驱动程序的行为必须与特定的 DBMS 一致,要么始终继续处理命令,要么永远不继续处理命令。如果驱动程序在某一次失败后继续进行处理,则 BatchUpdateException.getUpdateCounts
方法返回的数组将包含的元素与批中存在的命令一样多,并且其中至少有一个元素将为:
EXECUTE_FAILED
的值 - 指示未能成功执行命令,仅当命令失败后驱动程序继续处理命令时出现 在 Java 2 SDK, Standard Edition, 1.3 版中已经修改了可能的实现和返回值,以适应抛出 BatchUpdateException
对象后在批量更新中继续处理命令的选项。
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者驱动程序不支持批量语句。如果未能正确执行发送到数据库的命令之一或者尝试返回结果集合,则抛出
BatchUpdateException
(
SQLException
的子类)。
addBatch(java.lang.String)
,
DatabaseMetaData.supportsBatchUpdates()
Connection getConnection() throws SQLException
Statement
对象的
Connection
对象。
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
boolean getMoreResults(int current) throws SQLException
Statement
对象移动到下一个结果,根据给定标志指定的指令处理所有当前
ResultSet
对象;如果下一个结果为
ResultSet
对象,则返回
true
。
当以下表达式为 true 时没有更多结果:
// stmt is a Statement object ((stmt.getMoreResults(current) == false) && (stmt.getUpdateCount() == -1))
current
- 下列
Statement
常量之一,这些常量指示将对使用
getResultSet
方法获取的当前
ResultSet
对象发生的操作:
Statement.CLOSE_CURRENT_RESULT
、
Statement.KEEP_CURRENT_RESULT
或
Statement.CLOSE_ALL_RESULTS
ResultSet
对象,则返回
true
;如果其为更新计数或者不存在更多的结果,则返回
false
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者提供的参数不是以下参数之一:
Statement.CLOSE_CURRENT_RESULT
、
Statement.KEEP_CURRENT_RESULT
或
Statement.CLOSE_ALL_RESULTS
SQLFeatureNotSupportedException
- 如果
DatabaseMetaData.supportsMultipleOpenResults
返回
false
,并且
Statement.KEEP_CURRENT_RESULT
或
Statement.CLOSE_ALL_RESULTS
作为参数提供。
execute(java.lang.String)
ResultSet getGeneratedKeys() throws SQLException
Statement
对象而创建的所有自动生成的键。如果此
Statement
对象没有生成任何键,则返回空的
ResultSet
对象。
注:如果未指定表示自动生成键的列,则 JDBC 驱动程序实现将确定最能表示自动生成键的列。
Statement
对象自动生成的键的
ResultSet
对象
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
Statement
生成的自动生成键是否可用于获取。如果该 SQL 语句不是
INSERT
语句,或者不是可以返回自动生成键的 SQL 语句(这些语句的列表是特定于供应商的),则驱动程序将忽略该标志。
sql
- SQL 数据操作语言(Data Manipulation Language,DML)语句,如
INSERT
、
UPDATE
或
DELETE
;或者是不返回任何内容的 SQL 语句,如 DDL 语句。
autoGeneratedKeys
- 指示自动生成的键是否可用于获取的标志;以下常量之一:
Statement.RETURN_GENERATED_KEYS
Statement.NO_GENERATED_KEYS
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,给定的 SQL 语句返回
ResultSet
对象,或者给定的常量不是允许的常量之一
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持带 Statement.RETURN_GENERATED_KEYS 常量的此方法
int executeUpdate(String sql, int[] columnIndexes) throws SQLException
INSERT
语句,或者不是可以返回自动生成键的 SQL 语句(这些语句的列表是特定于供应商的),则驱动程序将忽略该数组。
sql
- SQL 数据操作语言 (DML) 语句,如
INSERT
、
UPDATE
或
DELETE
;或者不返回任何内容的 SQL 语句,如 DDL 语句。
columnIndexes
- 指示应该从插入行返回列的列索引数组
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,SQL 语句返回
ResultSet
对象,或者提供给此方法的第二个参数不是其元素为有效列索引的
int
数组
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
int executeUpdate(String sql, String[] columnNames) throws SQLException
INSERT
语句,或者不是可以返回自动生成键的 SQL 语句(这些语句的列表是特定于供应商的),则驱动程序将忽略该数组。
sql
- SQL 数据操作语言 (DML) 语句,如
INSERT
、
UPDATE
或
DELETE
;或者不返回任何内容的 SQL 语句,如 DDL 语句。
columnNames
- 应该从插入行返回的列的名称数组
INSERT
、
UPDATE
或
DELETE
语句,或者为 0,表示不返回任何内容的 SQL 语句
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,SQL 语句返回
ResultSet
对象,或者提供给此方法的第二个参数不是其元素为有效列名称的
String
数组
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
boolean execute(String sql, int autoGeneratedKeys) throws SQLException
INSERT
语句,或者不是可以返回自动生成键的 SQL 语句(这些语句的列表是特定于供应商的),则驱动程序将忽略此信号。
在某些(不常见)情形下,单个 SQL 语句可能返回多个结果集合和/或更新计数。这一点通常可以忽略,除非正在 (1) 执行已知可能返回多个结果的存储过程或者 (2) 动态执行未知 SQL 字符串。
execute
方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSet
或 getUpdateCount
来获取结果,使用 getMoreResults
来移动后续结果。
sql
- 任何 SQL 语句
autoGeneratedKeys
- 指示是否应该使用
getGeneratedKeys
方法使自动生成的键可用于获取的常量;以下常量之一:
Statement.RETURN_GENERATED_KEYS
或
Statement.NO_GENERATED_KEYS
ResultSet
对象,则返回
true
;如果其为更新计数或者不存在任何结果,则返回
false
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者提供给此方法的第二个参数不是
Statement.RETURN_GENERATED_KEYS
或
Statement.NO_GENERATED_KEYS
。
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持带 Statement.RETURN_GENERATED_KEYS 常量的此方法
getResultSet()
,
getUpdateCount()
,
getMoreResults()
,
getGeneratedKeys()
boolean execute(String sql, int[] columnIndexes) throws SQLException
INSERT
语句,或者不是可以返回自动生成键的 SQL 语句(这些语句的列表是特定于供应商的),则驱动程序将忽略该数组。
在某些(不常见)情形下,单个 SQL 语句可能返回多个结果集合和/或更新计数。这一点通常可以忽略,除非正在 (1) 执行已知可能返回多个结果的存储过程或者 (2) 动态执行未知 SQL 字符串。
execute
方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSet
或 getUpdateCount
来获取结果,使用 getMoreResults
来移动后续结果。
sql
- 任何 SQL 语句
columnIndexes
- 通过调用方法
getGeneratedKeys
应该可用于获取的插入行中的列索引数组
ResultSet
对象,则返回
true
;如果其为更新计数或者不存在任何结果,则返回
false
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者传递给此方法的
int
数组中的元素不是有效的列索引
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
getResultSet()
,
getUpdateCount()
,
getMoreResults()
boolean execute(String sql, String[] columnNames) throws SQLException
INSERT
语句,或者不是可以返回自动生成键的 SQL 语句(这些语句的列表是特定于供应商的),则驱动程序将忽略该数组。
在某些(不常见)情形下,单个 SQL 语句可能返回多个结果集合和/或更新计数。这一点通常可以忽略,除非正在 (1) 执行已知可能返回多个结果的存储过程或者 (2) 动态执行未知 SQL 字符串。
execute
方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSet
或 getUpdateCount
来获取结果,使用 getMoreResults
来移动后续结果。
sql
- 任何 SQL 语句
columnNames
- 通过调用方法
getGeneratedKeys
应该可用于获取的插入行中的列名称数组
ResultSet
对象,则返回
true
;如果其为更新计数或者不存在更多结果,则返回
false
SQLException
- 如果发生数据库访问错误,在已关闭的
Statement
上调用此方法,或者传递给此方法的
String
数组的元素不是有效的列名称
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法
getResultSet()
,
getUpdateCount()
,
getMoreResults()
,
getGeneratedKeys()
int getResultSetHoldability() throws SQLException
Statement
对象生成的
ResultSet
对象的结果集合可保存性。
ResultSet.HOLD_CURSORS_OVER_COMMIT
或
ResultSet.CLOSE_CURSORS_AT_COMMIT
SQLException
- 如果发生数据库访问错误,或者在已关闭的
Statement
上调用此方法
boolean isClosed() throws SQLException
Statement
对象。如果已经对它调用了 close 方法,或者它自动关闭,则
Statement
已关闭。
Statement
对象关闭,则返回 true;如果它仍是打开的,则返回 false
SQLException
- 如果发生数据库访问错误
void setPoolable(boolean poolable) throws SQLException
Statement
池化或非池化。指定值是语句池实现的一个提示,指示应用程序是否希望语句被池化。关于是否使用该提示,由语句池管理器决定。
语句的可池化的值对驱动程序实现的内部语句缓存以及应用程序服务器和其他应用程序实现的外部语句缓存都适用。
默认情况下,Statement
在创建时不是可池化的,而 PreparedStatement
和 CallableStatement
在创建时是可池化的。
poolable
- 如果为 true,则请求将语句池化;如果为 false,则不池化语句
SQLException
- 如果在已关闭的
Statement
上调用此方法
boolean isPoolable() throws SQLException
Statement
是否是可池化的值。
Statement
是可池化的,则返回
true
;否则返回
false
SQLException
- 如果在已关闭的
Statement
上调用此方法
setPoolable(boolean)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。