|
JavaTM 2 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 >= 0getMaxFieldSize()
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 >= 0getMaxRows()
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 >= 0getQueryTimeout()
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 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。