java.sql.statement_java.sql.Statement的講解 | 學步園

public interface Statement

Statement 對象用於執行一條靜態的 SQL 語句並獲取它產生的結果。

任何時侯每條語句僅能打開一個 ResultSet 。因此,如果對一個 ResultSet 的讀出與另一個 ResultSet 的讀出交錯,那麼每個 ResultSet 一定由不同的語句產生。如果有 ResultSet 存在,所有的語句執行方法都隱式關閉當前的 ResultSet 。

參見:

createStatement, ResultSet

方法索引

cancel()

Cancel 用於一個線程取消另一個線程正在執行的一條語句。

clearWarnings()

此調用完成之後,getWarnings 返回 null 直到為該語句報告了一個新的警告。

close()

在很多情況下,語句自動關閉時立即釋放該語句所在數據庫和 JDBC 資源是需要的;close 方法就是這種立即釋放方法。

execute(String)

執行一條可能返回多個結果的 SQL 語句。

executeQuery(String)

執行一條返回單個 ResultSet 的 SQL 語句。

executeUpdate(String)

執行一條 SQL INSERT、UPDATE 或 DELETE 語句。

getMaxFieldSize()

maxFieldSize 限制(以字節為單位)是可為任何列值返回的數據的最大數量;它僅適用於 BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR 和 LONGVARCHAR 列。

getMaxRows()

maxRows 限制是 ResultSet 可包含的最大行數。

getMoreResults()

getMoreResults 可使得移到語句的下一個結果。

getQueryTimeout()

queryTimeout 限制是驅動程序等待一條語句執行的秒數。

getResultSet()

getResultSet 返回 ResultSet 的當前結果。

getUpdateCount()

getUpdateCount 返回當前結果作為一個更新數量;如果結果是一個 ResultSet 或沒有其他結果,返回 -1。

getWarnings()

返回由這條語句的調用報告的第一個警告。

setCursorName(String)

setCursorname 定義了由後繼的語句執行方法使用的 SQL 游標名。

setEscapeProcessing(boolean)

如果打開換碼掃描(缺省), 驅動程序在向數據庫發送 SQL 語句之前做換碼替換。

setMaxFieldSize(int)

maxFieldSize 限制(以字節為單位)設置為任何列值返回的數據的最大數目;它僅適用於 BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR 和 LONGVARCHAR 域。

setMaxRows(int)

maxRows 限制限制 ResultSet 可包含的最大行數。

setQueryTimeout(int)

queryTimeout 限制是驅動程序等待一條語句執行的秒數。

方法

executeQuery

public abstract ResultSet executeQuery(String sql) throws SQLException

執行一條返回單個 ResultSet 的 SQL 語句。

參數:

sql - 典型地,這是靜態的 SQL SELECT 語句

返回值:

包含由查詢產生的數據的 ResultSet;永遠不為 null 。

拋出: SQLException

如果發生了數據訪問錯誤。

executeUpdate

public abstract int executeUpdate(String sql) throws SQLException

執行一條 SQL INSERT、UPDATE 或 DELETE 語句。 另外,可執行沒有返回值的 SQL 語句,如 SQL DDL 語句。

參數:

sql - 一條 SQL INSERT、UPDATE 或 DELETE 語句或沒有返回值的 SQL 語句

返回值:

如果執行 INSERT、UPDATE 或 DELETE 語句返回行數或者為執行沒有返回值的語句返回 0

拋出: SQLException

如果發生了數據訪問錯誤。

close

public abstract void close() throws SQLException

在很多情況下,在語句自動關閉時立即釋放該語句的數據庫和 JDBC 資源是需要的;close 方法就是這種立即釋放方法。

注意: 當語句收集到垃圾箱,它被自動關閉。如果一條語句關閉,那麼它的 ResultSet 如果存在的話也將被關閉。

拋出: SQLException

如果發生了數據訪問錯誤。

getMaxFieldSize

public abstract int getMaxFieldSize() throws SQLException

maxFieldSize 限制(以字節為單位)是可為任何列值返回的數據的最大數量;它僅適用於 BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR 和 LONGVARCHAR 列。如果超過這個限制,超過的數據將被拋棄。

返回值:

當前的最大列尺寸限制;零表示無限制。

拋出: SQLException

如果發生了數據訪問錯誤。

setMaxFieldSize

public abstract void setMaxFieldSize(int max) throws SQLException

maxFieldSize 限制(以字節為單位)是為任何列值返回的數據的最大數量;它僅適用於 BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR 和 LONGVARCHAR 域。如果超過這個限制,超過的數據將被丟棄。為了最大的可移植性,通常使用大於 256 的值。

參數:

max - 新的最大列尺寸限制;零表示無限制

拋出: SQLException

如果發生了數據訪問錯誤。

getMaxRows

public abstract int getMaxRows() throws SQLException

maxRows 限制是 ResultSet 可包含的最大行數。 如果超過限制,超過的行將被丟棄。

返回值:

當前的最大行限制;零表示沒有限制

拋出: SQLException

如果發生了數據訪問錯誤。

setMaxRows

public abstract void setMaxRows(int max) throws SQLException

maxRows 限制用來限制 ResultSet 可包含的最大行數。如果超過這個限制,超過的行將被丟棄。

參數:

max - 新的最大行限制;零表示無限制

拋出: SQLException

如果發生了數據訪問錯誤。

setEscapeProcessing

public abstract void setEscapeProcessing(boolean enable) throws SQLException

如果不作掃描是打開的(缺省值), 驅動程序在向數據庫發送 SQL 語句之前將不作替換。 注意:因為準備好的語句通常在此調用之前進行了語法分析,所以對準備好的語句禁用不作處理是無效的。

參數:

enable - true 表示啟用; false 表示禁用

拋出: SQLException

如果發生了數據訪問錯誤。

getQueryTimeout

public abstract int getQueryTimeout() throws SQLException

queryTimeout 限制是驅動程序等待一條語句執行的秒數。 如果超過這個限制,則拋出 SQLException 。

返回值:

以秒記數的當前查詢的超時限制;零表示無限制

拋出: SQLException

如果發生了數據訪問錯誤。

setQueryTimeout

public abstract void setQueryTimeout(int seconds) throws SQLException

queryTimeout 限制是驅動程序等待一條語句執行的秒數。 如果超過這個限制,則拋出 SQLException 。

參數:

seconds - 以秒記數的新查詢的超時限制;零表示無限制

拋出: SQLException

如果發生了數據訪問錯誤。

cancel

public abstract void cancel() throws SQLException

Cancel 用於一個線程取消另一個線程正在執行的一條語句。

拋出: SQLException

如果發生了數據訪問錯誤。

getWarnings

public abstract SQLWarning getWarnings() throws SQLException

返回由對這條語句的調用報告的第一個警告。語句的執行方法清除它的 SQLWarning 鏈。後繼的語句警告將被鏈接到這個 SQLWarning 上。

每次執行語句時,警告鏈被自動清除。

注意: 如果正處理一個 ResultSet,則任何與讀 ResultSet 相關的警告將連接到 ResultSet 對象上。

返回值:

第一個 SQLWarning 或 null

拋出: SQLException

如果發生了數據訪問錯誤。

clearWarnings

public abstract void clearWarnings() throws SQLException

此調用完成之後,getWarnings 返回 null, 直到該語句產生了一個新警告為止。

拋出: SQLException

如果發生了數據訪問錯誤。

setCursorName

public abstract void setCursorName(String name) throws SQLException

setCursorname 定義了由後繼語句執行方法使用的 SQL 游標名。 該名字可用在 SQL 定位的 update/delete 語句中,來識別由該語句生成的 ResultSet 中的當前行。如果數據庫不支持定位的 update/delete, 該方法無用。

注意: 由定義可知,定位的 update/delete 執行必須由不同的語句完成,而不是由生成用於定位的 ResultSet 的語句來執行。而且,游標名在連接中必須是唯一的。

參數:

name - 新的游標名。

拋出: SQLException

如果發生了數據訪問錯誤。

execute

public abstract boolean execute(String sql) throws SQLException

執行一條可能返回多個結果的 SQL 語句。 在某些(非正常)環境下,一個單獨的 SQL 語句可能返回多個結果集和/或更新數量。通常,您可忽略該方法,除非您正執行事先知道可能會返回多個結果集的存儲過程,或者您動態地執行一個未知的 SQL 字符串。 "execute"、"getMoreResults"、"getResultSet" 和"getUpdateCount" 方法可使得瀏覽多條結果。 "execute" 方法執行一條 SQL 語句並指示最初的結果形式。可使用 getResultSet 或 getUpdateCount

方法來檢索結果,及 getMoreResults 方法來移動到任何後繼的結果。

參數:

sql - 任何 SQL 語句

返回值:

如果下一個結果是 ResultSet ,返回 true;如果它是一個更新數量或沒有其它結果,返回 false。

拋出: SQLException

如果發生了數據訪問錯誤。

參見:

getResultSet, getUpdateCount, getMoreResults

getResultSet

public abstract ResultSet getResultSet() throws SQLException

getResultSet 返回當前結果作為 ResultSet 。對每個結果只應調用該方法一次。

返回值:

作為 ResultSet 的當前結果;如果沒有其它結果返回 null

拋出: SQLException

如果發生了數據訪問錯誤。

參見:

execute

getUpdateCount

public abstract int getUpdateCount() throws SQLException

getUpdateCount 返回當前結果作為一個更新數量;如果結果是一個 ResultSet 或沒有其他結果,返回 -1。 對每個結果只應調用該方法一次。

返回值:

作為更新數量的當前結果;如果沒有其它結果則返回 null

拋出: SQLException

如果發生了數據訪問錯誤。

參見:

execute

getMoreResults

public abstract boolean getMoreResults() throws SQLException

getMoreResults 移到語句的下一個結果。 如果結果是一個 ResultSet ,返回 true 。 getMoreResults 也隱式關閉用 getResultSet 獲得的當前 ResultSet。如果 (!getMoreResults() && (getUpdateCount() == -1) 則沒有下一結果。

返回值:

如果下一個結果是 ResultSet ,返回 true;如果它是一個更新數量或沒有其它結果,返回 false。

拋出: SQLException

如果發生了數據訪問錯誤。

參見:

execute

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值