JavaTM 2 Platform
Standard Ed. 5.0

java.sql
接口 Statement

所有已知子接口:
CallableStatement, PreparedStatement

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 语句,该语句可能为 INSERTUPDATEDELETE 语句,或者不返回任何内容的 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 对象上的调用报告的第一个警告。
 void setCursorName(String name)
          将 SQL 指针名称设置为给定的 String,后续 Statement 对象的 execute 方法将使用此字符串。
 void setEscapeProcessing(boolean enable)
          将转义处理设置为开或关。
 void setFetchDirection(int direction)
          向驱动程序提供关于方向的提示,在使用此 Statement 对象创建的 ResultSet 对象中将按该方向处理行。
 void setFetchSize(int rows)
          为 JDBC 驱动程序提供关于需要更多行时应该从数据库获取的行数的提示。
 void setMaxFieldSize(int max)
          设置将字符或二进制值存储到给定字节数中 ResultSet 列中的最大字节数限制。
 void setMaxRows(int max)
          将任何 ResultSet 对象都可以包含的最大行数限制设置为给定数。
 void setQueryTimeout(int seconds)
          将驱动程序等待 Statement 对象执行的秒数设置为给定秒数。
 

字段详细信息

CLOSE_CURRENT_RESULT

static final int CLOSE_CURRENT_RESULT
该常量指示调用 getMoreResults 时应该关闭当前 ResultSet 对象。

从以下版本开始:
1.4
另请参见:
常量字段值

KEEP_CURRENT_RESULT

static final int KEEP_CURRENT_RESULT
该常量指示调用 getMoreResults 时应该关闭当前 ResultSet 对象。

从以下版本开始:
1.4
另请参见:
常量字段值

CLOSE_ALL_RESULTS

static final int CLOSE_ALL_RESULTS
该常量指示调用 getMoreResults 时应该关闭以前一直打开的所有 ResultSet 对象。

从以下版本开始:
1.4
另请参见:
常量字段值

SUCCESS_NO_INFO

static final int SUCCESS_NO_INFO
该常量指示批量语句执行成功但不存在受影响的可用行数计数。

从以下版本开始:
1.4
另请参见:
常量字段值

EXECUTE_FAILED

static final int EXECUTE_FAILED
该常量指示在执行批量语句时发生错误。

从以下版本开始:
1.4
另请参见:
常量字段值

RETURN_GENERATED_KEYS

static final int RETURN_GENERATED_KEYS
该常量指示生成的键应该可用于检索。

从以下版本开始:
1.4
另请参见:
常量字段值

NO_GENERATED_KEYS

static final int NO_GENERATED_KEYS
该常量指示生成的键应该不可用于检索。

从以下版本开始:
1.4
另请参见:
常量字段值
方法详细信息

executeQuery

ResultSet executeQuery(String sql)
                       throws SQLException
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。

参数:
sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句
返回:
包含给定查询所生成数据的 ResultSet 对象;永远不能为 null
抛出:
SQLException - 如果发生数据库访问错误或者给定 SQL 语句生成单个 ResultSet 对象之外的任何其他内容

executeUpdate

int executeUpdate(String sql)
                  throws SQLException
执行给定 SQL 语句,该语句可能为 INSERTUPDATEDELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。

参数:
sql - SQL INSERTUPDATEDELETE 语句,或者不返回任何内容的 SQL 语句
返回:
INSERTUPDATEDELETE 语句的行计数;或者 0,表示不返回任何内容的 SQL 语句
抛出:
SQLException - 如果发生数据库访问错误或者给定的 SQL 语句生成 ResultSet 对象

close

void close()
           throws SQLException
立即释放此 Statement 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。一般来说,使用完后立即释放资源是一个好习惯,这样可以避免对数据库资源的占用。

在已经关闭的 Statement 对象上调用 close 方法无效。

注:Statement 对象在进行垃圾回收时被自动关闭。关闭 Statement 对象时,还将同时关闭其当前的 ResultSet 对象(如果有)。

抛出:
SQLException - 如果发生数据库访问错误

getMaxFieldSize

int getMaxFieldSize()
                    throws SQLException
检索可以为此 Statement 对象所生成 ResultSet 对象中的字符和二进制列值返回的最大字节数。此限制仅应用于 BINARYVARBINARYLONGVARBINARYCHARVARCHARLONGVARCHAR 列。如果超过了该限制,则安静地丢弃多出的数据。

返回:
存储字符和二进制值的列的当前列大小限制;零表示没有任何限制
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
setMaxFieldSize(int)

setMaxFieldSize

void setMaxFieldSize(int max)
                     throws SQLException
设置将字符或二进制值存储到给定字节数中 ResultSet 列中的最大字节数限制。此限制仅应用于 BINARYVARBINARYLONGVARBINARYCHARVARCHARLONGVARCHAR 字段。如果超过了该限制,则安静地丢弃多出的数据。为了获得最大的可移植性,应该使用大于 256 的值。

参数:
max - 以字节为单位的新列大小限制;零表示没有任何限制
抛出:
SQLException - 如果发生数据库访问错误或者不满足条件 max >= 0
另请参见:
getMaxFieldSize()

getMaxRows

int getMaxRows()
               throws SQLException
检索由此 Statement 对象生成的 ResultSet 对象可以包含的最大行数。如果超过了此限制,则安静地撤消多出的行。

返回:
由此 Statement 对象生成的 ResultSet 对象的当前最大行数;零表示不存在任何限制
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
setMaxRows(int)

setMaxRows

void setMaxRows(int max)
                throws SQLException
将任何 ResultSet 对象都可以包含的最大行数限制设置为给定数。如果超过了该限制,则安静地撤消多出的行。

参数:
max - 新的最大行数限制;零表示没有任何限制
抛出:
SQLException - 如果发生数据库访问错误或者不满足条件 max >= 0
另请参见:
getMaxRows()

setEscapeProcessing

void setEscapeProcessing(boolean enable)
                         throws SQLException
将转义处理设置为开或关。如果转义扫描为开启(默认值),则驱动程序在将 SQL 语句发送到数据库之前执行转义替换。注:因为准备的语句通常在进行此调用之前分析,所以对 PreparedStatements 对象禁用转义处理无效。

参数:
enable - 为 true 表示启用转义处理;为 false 表示禁用转义处理
抛出:
SQLException - 如果发生数据库访问错误

getQueryTimeout

int getQueryTimeout()
                    throws SQLException
检索驱动程序等待 Statement 对象执行的秒数。如果超过该限制,则抛出 SQLException

返回:
以秒为单位的当前查询超时限制;零表示不存在任何限制
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
setQueryTimeout(int)

setQueryTimeout

void setQueryTimeout(int seconds)
                     throws SQLException
将驱动程序等待 Statement 对象执行的秒数设置为给定秒数。如果超过该限制,则抛出 SQLException

参数:
seconds - 以秒为单位的查询超时限制;零表示没有任何限制
抛出:
SQLException - 如果发生数据库访问错误或者不满足条件 seconds >= 0
另请参见:
getQueryTimeout()

cancel

void cancel()
            throws SQLException
如果 DBMS 和驱动程序都支持中止 SQL 语句,则取消此 Statement 对象。一个线程可以使用此方法取消另一个线程正在执行的语句。

抛出:
SQLException - 如果发生数据库访问错误

getWarnings

SQLWarning getWarnings()
                       throws SQLException
检索此 Statement 对象上的调用报告的第一个警告。后续的 Statement 对象警告将链接到此 SQLWarning 对象上。

每次(重新)执行语句时,都会自动清除警告链。不可以在关闭的 Statement 对象上调用此方法,这样做将导致抛出 SQLException

注:如果要处理 ResultSet 对象,则与该 ResultSet 对象上的读操作相关联的所有警告都链接到它上面,而不是链接到生成它的 Statement 对象上。

返回:
第一个 SQLWarning 对象;如果不存在任何警告,则返回 null
抛出:
SQLException - 如果发生数据库访问错误或者在关闭的 statement 上调用此方法

clearWarnings

void clearWarnings()
                   throws SQLException
清除在此 Statement 对象上报告的所有警告。调用此方法后,在为此 Statement 对象报告新的警告之前,getWarnings 方法将一直返回 null

抛出:
SQLException - 如果发生数据库访问错误

setCursorName

void setCursorName(String name)
                   throws SQLException
将 SQL 指针名称设置为给定的 String,后续 Statement 对象的 execute 方法将使用此字符串。然后,可以在 SQL 位置更新或删除语句中使用该名称来标识由此语句生成的 ResultSet 对象中的当前行。如果数据库不支持位置更新/删除,则此方法为无操作 (noop)。为了确保指针具有支持更新的适当隔离级别,指针的 SELECT 语句的形式应该为 SELECT FOR UPDATE。如果 FOR UPDATE 不存在,则位置更新可能失败。

注:按照定义,位置更新和删除必须由生成的用于放置的 ResultSet 对象之外的某个 Statement 对象来执行。此外,在连接中指针名称还必须是惟一的。

参数:
name - 新指针名称,该名称在连接中必须是唯一的
抛出:
SQLException - 如果发生数据库访问错误

execute

boolean execute(String sql)
                throws SQLException
执行给定的 SQL 语句,该语句可能返回多个结果。在某些(不常见)情形下,单个 SQL 语句可能返回多个结果集合和/或更新计数。这一点通常可以忽略,除非正在 (1) 执行已知可能返回多个结果的存储过程或者 (2) 动态执行未知 SQL 字符串。

execute 方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSetgetUpdateCount 来检索结果,使用 getMoreResults 来移动后续结果。

参数:
sql - 任何 SQL 语句
返回:
如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回 false
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
getResultSet(), getUpdateCount(), getMoreResults()

getResultSet

ResultSet getResultSet()
                       throws SQLException
ResultSet 对象的形式检索当前结果。每个结果只应调用一次此方法。

返回:
ResultSet 对象的形式返回当前结果;如果结果是更新计数或没有更多的结果,则返回 null
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
execute(java.lang.String)

getUpdateCount

int getUpdateCount()
                   throws SQLException
以更新计数的形式检索当前结果;如果结果为 ResultSet 对象或没有更多结果,则返回 -1。每个结果只应调用一次此方法。

返回:
以更新计数的形式返回当前结果;如果当前结果为 ResultSet 对象或没有更多结果,则返回 -1
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
execute(java.lang.String)

getMoreResults

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 - 如果发生数据库访问错误
另请参见:
execute(java.lang.String)

setFetchDirection

void setFetchDirection(int direction)
                       throws SQLException
向驱动程序提供关于方向的提示,在使用此 Statement 对象创建的 ResultSet 对象中将按该方向处理行。默认值为 ResultSet.FETCH_FORWARD

注意,此方法为此 Statement 对象生成的结果集合设置默认获取方向。每个结果集合都具有它自己用于获取和设置其自身获取方向的方法。

参数:
direction - 用于处理行的初始方向
抛出:
SQLException - 如果发生数据库访问错误或给定的方向不是 ResultSet.FETCH_FORWARDResultSet.FETCH_REVERSEResultSet.FETCH_UNKNOWN 之一
从以下版本开始:
1.2
另请参见:
getFetchDirection()

getFetchDirection

int getFetchDirection()
                      throws SQLException
检索从数据库表获取行的方向,该方向是根据此 Statement 对象生成的结果集合的默认值。如果此 Statement 对象没有通过调用方法 setFetchDirection 设置获取方向,则返回值是特定于实现的。

返回:
根据此 Statement 对象生成的结果集合的默认获取方向
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.2
另请参见:
setFetchDirection(int)

setFetchSize

void setFetchSize(int rows)
                  throws SQLException
为 JDBC 驱动程序提供关于需要更多行时应该从数据库获取的行数的提示。指定的行数仅影响使用此语句创建的结果集合。如果指定的值为 0,则忽略该提示。默认值为零。

参数:
rows - 要获取的行数
抛出:
SQLException - 如果发生数据库访问错误或者不满足条件 0 <= rows <= this.getMaxRows()
从以下版本开始:
1.2
另请参见:
getFetchSize()

getFetchSize

int getFetchSize()
                 throws SQLException
检索结果集合的行数,该数是根据此 Statement 对象生成的 ResultSet 对象的默认获取大小。如果此 Statement 对象没有通过调用方法 setFetchSize 设置获取大小,则返回值是特定于实现的。

返回:
根据此 Statement 对象生成的结果集合的默认获取大小
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.2
另请参见:
setFetchSize(int)

getResultSetConcurrency

int getResultSetConcurrency()
                            throws SQLException
检索此 Statement 对象生成的 ResultSet 对象的结果集合并发性。

返回:
ResultSet.CONCUR_READ_ONLYResultSet.CONCUR_UPDATABLE
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.2

getResultSetType

int getResultSetType()
                     throws SQLException
检索此 Statement 对象生成的 ResultSet 对象的结果集合类型。

返回:
ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE 之一
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.2

addBatch

void addBatch(String sql)
              throws SQLException
将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。通过调用方法 executeBatch 可以批量执行此列表中的命令。

注:此方法是可选的。

参数:
sql - 通常此参数为静态的 SQL INSERTUPDATE 语句
抛出:
SQLException - 如果发生数据库访问错误,或者驱动程序不支持批量更新
从以下版本开始:
1.2
另请参见:
executeBatch()

clearBatch

void clearBatch()
                throws SQLException
清空此 Statement 对象的当前 SQL 命令列表。

注:此方法是可选的。

抛出:
SQLException - 如果发生数据库访问错误,或者驱动程序不支持批量更新
从以下版本开始:
1.2
另请参见:
addBatch(java.lang.String)

executeBatch

int[] executeBatch()
                   throws SQLException
将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。返回数组的 int 元素的排序对应于批中的命令,批中的命令根据被添加到批中的顺序排序。方法 executeBatch 返回的数组中的元素可能为以下元素之一:
  1. 大于或等于零的数 - 指示成功处理了命令,是给出执行命令所影响数据库中行数的更新计数
  2. SUCCESS_NO_INFO 的值 - 指示成功执行了命令,但受影响的行数是未知的

    如果批量更新中的命令之一无法正确执行,则此方法抛出 BatchUpdateException,并且 JDBC 驱动程序可能继续处理批处理中的剩余命令,也可能不执行。无论如何,驱动程序的行为必须与特定的 DBMS 一致,要么始终继续处理命令,要么永远不继续处理命令。如果驱动程序在某一次失败后继续进行处理,则 BatchUpdateException.getUpdateCounts 方法返回的数组将包含的元素与批中存在的命令一样多,并且其中至少有一个元素将为:

  3. EXECUTE_FAILED 的值 - 指示未能成功执行命令,仅当命令失败后驱动程序继续处理命令时出现

驱动程序不需要实现此方法。在 Java 2 SDK, Standard Edition, 1.3 版中已经修改了可能的实现和返回值,以适应抛出 BatchUpdateException 对象后在批量更新中继续处理命令的选项。

返回:
包含批中每个命令的一个元素的更新计数所组成的数组。数组的元素根据将命令添加到批中的顺序排序。
抛出:
SQLException - 如果发生数据库访问错误,或者驱动程序不支持批量语句。如果未能正确执行发送到数据库的命令之一或者尝试返回结果集合,则抛出 BatchUpdateExceptionSQLException 的子类)。
从以下版本开始:
1.3

getConnection

Connection getConnection()
                         throws SQLException
检索生成此 Statement 对象的 Connection 对象。

返回:
此语句生成的连接
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.2

getMoreResults

boolean getMoreResults(int current)
                       throws SQLException
将此 Statement 对象移动到下一个结果,根据给定标志指定的指令处理所有当前 ResultSet 对象;如果下一个结果为 ResultSet 对象,则返回 true

当以下表达式为 true 时没有更多结果:

     // stmt is a Statement object
     ((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
 

参数:
current - 下列 Statement 常量之一,这些常量指示将对使用 getResultSet 方法获取的当前 ResultSet 对象发生的操作:Statement.CLOSE_CURRENT_RESULTStatement.KEEP_CURRENT_RESULTStatement.CLOSE_ALL_RESULTS
返回:
如果下一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在更多的结果,则返回 false
抛出:
SQLException - 如果发生数据库访问错误,或者提供的参数不是以下参数之一:Statement.CLOSE_CURRENT_RESULTStatement.KEEP_CURRENT_RESULTStatement.CLOSE_ALL_RESULTS
从以下版本开始:
1.4
另请参见:
execute(java.lang.String)

getGeneratedKeys

ResultSet getGeneratedKeys()
                           throws SQLException
检索由于执行此 Statement 对象而创建的所有自动生成的键。如果此 Statement 对象没有生成任何键,则返回空的 ResultSet 对象。

返回:
包含通过执行此 Statement 对象自动生成的键的 ResultSet 对象
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.4

executeUpdate

int executeUpdate(String sql,
                  int autoGeneratedKeys)
                  throws SQLException
执行给定的 SQL 语句,并用给定标志通知驱动程序由此 Statement 生成的自动生成键是否可用于检索。

参数:
sql - 必须为 SQL INSERTUPDATEDELETE 语句,或者不返回任何内容的 SQL 语句
autoGeneratedKeys - 指示自动生成的键是否可用于检索的标志;以下常量之一:Statement.RETURN_GENERATED_KEYS Statement.NO_GENERATED_KEYS
返回:
或者为 INSERTUPDATEDELETE 语句的行计数,或者为 0,表示不返回任何内容的 SQL 语句
抛出:
SQLException - 如果发生数据库访问错误、给定的 SQL 语句返回 ResultSet 对象,或者给定的常量不是允许的常量之一
从以下版本开始:
1.4

executeUpdate

int executeUpdate(String sql,
                  int[] columnIndexes)
                  throws SQLException
执行给定的 SQL 语句,并通知驱动程序在给定数组中指示的自动生成的键应该可用于检索。如果该 SQL 语句不是一条 INSERT 语句,则驱动程序忽略该数组。

参数:
sql - SQL INSERTUPDATEDELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)
columnIndexes - 指示应该从插入行返回列的列索引数组
返回:
或者为 INSERTUPDATEDELETE 语句的行计数,或者为 0,表示不返回任何内容的 SQL 语句
抛出:
SQLException - 如果发生数据库访问错误、SQL 语句返回 ResultSet 对象,或者提供给此方法的第二个参数不是其元素为有效列索引的 int 数组
从以下版本开始:
1.4

executeUpdate

int executeUpdate(String sql,
                  String[] columnNames)
                  throws SQLException
执行给定的 SQL 语句,并通知驱动程序在给定数组中指示的自动生成的键应该可用于检索。如果该 SQL 语句不是一条 INSERT 语句,则驱动程序忽略该数组。

参数:
sql - SQL INSERTUPDATEDELETE 语句,或者不返回任何内容的 SQL 语句
columnNames - 应该从插入行返回的列的名称数组
返回:
或者为 INSERTUPDATEDELETE 语句,或者为 0,表示不返回任何内容的 SQL 语句
抛出:
SQLException - 如果发生数据库访问错误、SQL 语句返回 ResultSet 对象,或者提供给此方法的第二个参数不是其元素为有效列名称的 String 数组
从以下版本开始:
1.4

execute

boolean execute(String sql,
                int autoGeneratedKeys)
                throws SQLException
执行给定的 SQL 语句(该语句可能返回多个结果),并通知驱动程序所有自动生成的键都应该可用于检索。如果该 SQL 语句不是一条 INSERT 语句,则驱动程序忽略此信号。

在某些(不常见)情形下,单个 SQL 语句可能返回多个结果集合和/或更新计数。这一点通常可以忽略,除非正在 (1) 执行已知可能返回多个结果的存储过程或者 (2) 动态执行未知 SQL 字符串。

execute 方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSetgetUpdateCount 来检索结果,使用 getMoreResults 来移动后续结果。

参数:
sql - 任何 SQL 语句
autoGeneratedKeys - 指示是否应该使用 getGeneratedKeys 方法使自动生成的键可用于检索的常量;以下常量之一:Statement.RETURN_GENERATED_KEYSStatement.NO_GENERATED_KEYS
返回:
如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回 false
抛出:
SQLException - 如果发生数据库访问错误,或者提供给此方法的第二个参数不是 Statement.RETURN_GENERATED_KEYSStatement.NO_GENERATED_KEYS
从以下版本开始:
1.4
另请参见:
getResultSet(), getUpdateCount(), getMoreResults(), getGeneratedKeys()

execute

boolean execute(String sql,
                int[] columnIndexes)
                throws SQLException
执行给定的 SQL 语句(该语句可能返回多个结果),并通知驱动程序在给定数组中指示的自动生成的键应该可用于检索。此数组包含目标表中的列的索引,而该目标表包含应该使其可用的自动生成的键。如果给定的 SQL 语句不是一条 INSERT 语句,则驱动程序忽略该数组。

在某些(不常见)情形下,单个 SQL 语句可能返回多个结果集合和/或更新计数。这一点通常可以忽略,除非正在 (1) 执行已知可能返回多个结果的存储过程或者 (2) 动态执行未知 SQL 字符串。

execute 方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSetgetUpdateCount 来检索结果,使用 getMoreResults 来移动后续结果。

参数:
sql - 任何 SQL 语句
columnIndexes - 通过调用方法 getGeneratedKeys 应该可用于检索的插入行中的列索引数组
返回:
如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回 false
抛出:
SQLException - 如果发生数据库访问错误,或者传递给此方法的 int 数组中的元素不是有效的列索引
从以下版本开始:
1.4
另请参见:
getResultSet(), getUpdateCount(), getMoreResults()

execute

boolean execute(String sql,
                String[] columnNames)
                throws SQLException
执行给定的 SQL 语句(该语句可能返回多个结果),并通知驱动程序在给定数组中指示的自动生成的键应该可用于检索。此数组包含目标表中的列的名称,而该目标表包含应该使其可用的自动生成的键。如果给定的 SQL 语句不是一条 INSERT 语句,则驱动程序忽略该数组。

在某些(不常见)情形下,单个 SQL 语句可能返回多个结果集合和/或更新计数。这一点通常可以忽略,除非正在 (1) 执行已知可能返回多个结果的存储过程或者 (2) 动态执行未知 SQL 字符串。

execute 方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSetgetUpdateCount 来检索结果,使用 getMoreResults 来移动后续结果。

参数:
sql - 任何 SQL 语句
columnNames - 通过调用方法 getGeneratedKeys 应该可用于检索的插入行中的列名称数组
返回:
如果下一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在更多结果,则返回 false
抛出:
SQLException - 如果发生数据库访问错误,或者传递给此方法的 String 数组的元素不是有效的列名称
从以下版本开始:
1.4
另请参见:
getResultSet(), getUpdateCount(), getMoreResults(), getGeneratedKeys()

getResultSetHoldability

int getResultSetHoldability()
                            throws SQLException
检索此 Statement 对象生成的 ResultSet 对象的结果集合可保存性。

返回:
ResultSet.HOLD_CURSORS_OVER_COMMITResultSet.CLOSE_CURSORS_AT_COMMIT
抛出:
SQLException - 如果发生数据库访问错误
从以下版本开始:
1.4

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策