[java編程]Statement詳解

上傳人:xins****2008 文檔編號(hào):157460855 上傳時(shí)間:2022-09-29 格式:DOC 頁數(shù):6 大?。?1.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
[java編程]Statement詳解_第1頁
第1頁 / 共6頁
[java編程]Statement詳解_第2頁
第2頁 / 共6頁
[java編程]Statement詳解_第3頁
第3頁 / 共6頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《[java編程]Statement詳解》由會(huì)員分享,可在線閱讀,更多相關(guān)《[java編程]Statement詳解(6頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、接口定義   ---Wrapper 所有已知子接口   CallableStatement, PreparedStatement 說明   用于執(zhí)行靜態(tài) SQL 語句并返回它所生成結(jié)果的對(duì)象。   在默認(rèn)情況下,同一時(shí)間每個(gè)?Statement?對(duì)象在只能打開一個(gè) ResultSet 對(duì)象。因此,如果讀取一個(gè) ResultSet 對(duì)象與讀取另一個(gè)交叉,則這兩個(gè)對(duì)象必須是由不同的?Statement?對(duì)象生成的。如果存在某個(gè)語句的打開的當(dāng)前 ResultSet 對(duì)象,則?Statement?接口中的所有執(zhí)行方法都會(huì)隱式關(guān)閉它。   Statement?對(duì)象用于將 SQL

2、 語句發(fā)送到數(shù)據(jù)庫中。實(shí)際上有三種?Statement?對(duì)象,它們都作為在給定連接上執(zhí)行 SQL 語句的包容器:Statement、PreparedStatement(它從?Statement?繼承而來)和 CallableStatement(它從 PreparedStatement 繼承而來)。它們都專用于發(fā)送特定類型的 SQL 語句:Statement?對(duì)象用于執(zhí)行不帶參數(shù)的簡(jiǎn)單 SQL 語句;PreparedStatement 對(duì)象用于執(zhí)行帶或不帶 IN 參數(shù)的預(yù)編譯 SQL 語句;CallableStatement 對(duì)象用于執(zhí)行對(duì)數(shù)據(jù)庫已存儲(chǔ)過程的調(diào)用。   Statement?接口

3、提供了執(zhí)行語句和獲取結(jié)果的基本方法。PreparedStatement 接口添加了處理 IN 參數(shù)的方法;而 CallableStatement 添加了處理 OUT 參數(shù)的方法。   有些 DBMS 將已存儲(chǔ)過程中的每條語句視為獨(dú)立的語句;而另外一些則將整個(gè)過程視為一個(gè)復(fù)合語句。在啟用自動(dòng)提交時(shí),這種差別就變得非常重要,因?yàn)樗绊懯裁磿r(shí)候調(diào)用 commit 方法。在前一種情況中,每條語句單獨(dú)提交;在后一種情況中,所有語句同時(shí)提交。 字段摘要   static int? ?? ?? ?CLOSE_ALL_RESULTS   該常量指示調(diào)用 getMoreResults 時(shí)應(yīng)該關(guān)閉以前

4、一直打開的所有 ResultSet 對(duì)象。   static int? ?? ?? ?CLOSE_CURRENT_RESULT   該常量指示調(diào)用 getMoreResults 時(shí)應(yīng)該關(guān)閉當(dāng)前 ResultSet 對(duì)象。   static int? ?? ?? ?EXECUTE_FAILED   該常量指示在執(zhí)行批量語句時(shí)發(fā)生錯(cuò)誤。   static int? ?? ?? ?KEEP_CURRENT_RESULT   該常量指示調(diào)用 getMoreResults 時(shí)應(yīng)該關(guān)閉當(dāng)前 ResultSet 對(duì)象。   static int? ?? ?? ?NO_GENERATED_KEY

5、S   該常量指示生成的鍵應(yīng)該不可用于獲取。   static int? ?? ?? ?RETURN_GENERATED_KEYS   該常量指示生成的鍵應(yīng)該可用于獲取。   static int? ?? ?? ?SUCCESS_NO_INFO   該常量指示批量語句執(zhí)行成功但不存在受影響的可用行數(shù)計(jì)數(shù)。 方法摘要   void? ?? ?? ?addBatch(String sql)   將給定的 SQL 命令添加到此?Statement?對(duì)象的當(dāng)前命令列表中。   void? ?? ?? ?cancel()   如果 DBMS 和驅(qū)動(dòng)程序都支持中止 SQL 語句,則

6、取消此?Statement?對(duì)象。   void? ?? ?? ?clearBatch()   清空此?Statement?對(duì)象的當(dāng)前 SQL 命令列表。   void? ?? ?? ?clearWarnings()   清除在此?Statement?對(duì)象上報(bào)告的所有警告。   void? ?? ?? ?close()   立即釋放此?Statement?對(duì)象的數(shù)據(jù)庫和 JDBC 資源,而不是等待該對(duì)象自動(dòng)關(guān)閉時(shí)發(fā)生此操作。   boolean? ?? ?? ?execute(String sql)   執(zhí)行給定的 SQL 語句,該語句可能返回多個(gè)結(jié)果。   boolean?

7、 ?? ?? ?execute(String sql, int autoGeneratedKeys)   執(zhí)行給定的 SQL 語句(該語句可能返回多個(gè)結(jié)果),并通知驅(qū)動(dòng)程序所有自動(dòng)生成的鍵都應(yīng)該可用于獲取。   boolean? ?? ?? ?execute(String sql, int[] columnIndexes)   執(zhí)行給定的 SQL 語句(該語句可能返回多個(gè)結(jié)果),并通知驅(qū)動(dòng)程序在給定數(shù)組中指示的自動(dòng)生成的鍵應(yīng)該可用于獲取。   boolean? ?? ?? ?execute(String sql, String[] columnNames)   執(zhí)行給定的 SQL 語

8、句(該語句可能返回多個(gè)結(jié)果),并通知驅(qū)動(dòng)程序在給定數(shù)組中指示的自動(dòng)生成的鍵應(yīng)該可用于獲取。   int[]? ?? ?? ?executeBatch()   將一批命令提交給數(shù)據(jù)庫來執(zhí)行,如果全部命令執(zhí)行成功,則返回更新計(jì)數(shù)組成的數(shù)組。   ResultSet? ?? ?? ?executeQuery(String sql)   執(zhí)行給定的 SQL 語句,該語句返回單個(gè) ResultSet 對(duì)象。   int? ?? ?? ?executeUpdate(String sql)   執(zhí)行給定 SQL 語句,該語句可能為 INSERT、UPDATE 或 DELETE 語句,或者不返回任

9、何內(nèi)容的 SQL 語句(如 SQL DDL 語句)。   int? ?? ?? ?executeUpdate(String sql, int autoGeneratedKeys)   執(zhí)行給定的 SQL 語句,并用給定標(biāo)志通知驅(qū)動(dòng)程序由此?Statement?生成的自動(dòng)生成鍵是否可用于獲取。   int? ?? ?? ?executeUpdate(String sql, int[] columnIndexes)   執(zhí)行給定的 SQL 語句,并通知驅(qū)動(dòng)程序在給定數(shù)組中指示的自動(dòng)生成的鍵應(yīng)該可用于獲取。   int? ?? ?? ?executeUpdate(String sql, S

10、tring[] columnNames)   執(zhí)行給定的 SQL 語句,并通知驅(qū)動(dòng)程序在給定數(shù)組中指示的自動(dòng)生成的鍵應(yīng)該可用于獲取。   Connection? ?? ?? ?getConnection()   獲取生成此 Statement 對(duì)象的 Connection 對(duì)象。   int? ?? ?? ?getFetchDirection()   獲取從數(shù)據(jù)庫表獲取行的方向,該方向是根據(jù)此 Statement 對(duì)象生成的結(jié)果集合的默認(rèn)值。      int? ?? ?? ?getFetchSize()   獲取結(jié)果集合的行數(shù),該數(shù)是根據(jù)此 Statement 對(duì)象生成的 R

11、esultSet 對(duì)象的默認(rèn)獲取大小。   ResultSet? ?? ?? ?getGeneratedKeys()   獲取由于執(zhí)行此 Statement 對(duì)象而創(chuàng)建的所有自動(dòng)生成的鍵。   int? ?? ?? ?getMaxFieldSize()   獲取可以為此 Statement 對(duì)象所生成 ResultSet 對(duì)象中的字符和二進(jìn)制列值返回的最大字節(jié)數(shù)。   int? ?? ?? ?getMaxRows()   獲取由此 Statement 對(duì)象生成的 ResultSet 對(duì)象可以包含的最大行數(shù)。   boolean? ?? ?? ?getMoreResults()

12、  移動(dòng)到此 Statement 對(duì)象的下一個(gè)結(jié)果,如果其為 ResultSet 對(duì)象,則返回 true,并隱式關(guān)閉利用方法 getResultSet 獲取的所有當(dāng)前 ResultSet 對(duì)象。   boolean? ?? ?? ?getMoreResults(int current)   將此 Statement 對(duì)象移動(dòng)到下一個(gè)結(jié)果,根據(jù)給定標(biāo)志指定的指令處理所有當(dāng)前 ResultSet 對(duì)象;如果下一個(gè)結(jié)果為 ResultSet 對(duì)象,則返回 true。   int? ?? ?? ?getQueryTimeout()   獲取驅(qū)動(dòng)程序等待 Statement 對(duì)象執(zhí)行的秒數(shù)。

13、  ResultSet? ?? ?? ?getResultSet()   以 ResultSet 對(duì)象的形式獲取當(dāng)前結(jié)果。   int? ?? ?? ?getResultSetConcurrency()   獲取此 Statement 對(duì)象生成的 ResultSet 對(duì)象的結(jié)果集合并發(fā)性。   int? ?? ?? ?getResultSetHoldability()   獲取此 Statement 對(duì)象生成的 ResultSet 對(duì)象的結(jié)果集合可保存性。   int? ?? ?? ?getResultSetType()   獲取此 Statement 對(duì)象生成的 ResultS

14、et 對(duì)象的結(jié)果集合類型。      int? ?? ?? ?getUpdateCount()   以更新計(jì)數(shù)的形式獲取當(dāng)前結(jié)果;如果結(jié)果為 ResultSet 對(duì)象或沒有更多結(jié)果,則返回 -1。   SQLWarning? ?? ?? ?getWarnings()   獲取此 Statement 對(duì)象上的調(diào)用報(bào)告的第一個(gè)警告。   boolean? ?? ?? ?isClosed()   獲取是否已關(guān)閉了此 Statement 對(duì)象。   boolean? ?? ?? ?isPoolable()   返回指示 Statement 是否是可池化的值。   void? ??

15、?? ?setCursorName(String name)   將 SQL 指針名稱設(shè)置為給定的 String,后續(xù) Statement 對(duì)象的 execute 方法將使用此字符串。   void? ?? ?? ?setEscapeProcessing(boolean enable)   將轉(zhuǎn)義處理設(shè)置為開或關(guān)。      void? ?? ?? ?setFetchDirection(int direction)   向驅(qū)動(dòng)程序提供關(guān)于方向的提示,在使用此 Statement 對(duì)象創(chuàng)建的 ResultSet 對(duì)象中將按該方向處理行。   void? ?? ?? ?setFetc

16、hSize(int rows)   為 JDBC 驅(qū)動(dòng)程序提供一個(gè)提示,它提示此 Statement 生成的 ResultSet 對(duì)象需要更多行時(shí)應(yīng)該從數(shù)據(jù)庫獲取的行數(shù)。   void? ?? ?? ?setMaxFieldSize(int max)   設(shè)置此 Statement 對(duì)象生成的 ResultSet 對(duì)象中字符和二進(jìn)制列值可以返回的最大字節(jié)數(shù)限制。   void? ?? ?? ?setMaxRows(int max)   將此 Statement 對(duì)象生成的所有 ResultSet 對(duì)象可以包含的最大行數(shù)限制設(shè)置為給定數(shù)。   void? ?? ?? ?setPool

17、able(boolean poolable)   請(qǐng)求將 Statement 池化或非池化。   void? ?? ?? ?setQueryTimeout(int seconds)   將驅(qū)動(dòng)程序等待 Statement 對(duì)象執(zhí)行的秒數(shù)設(shè)置為給定秒數(shù)。 Statement 使用案例   1、創(chuàng)建 Statement 對(duì)象   建立了到特定數(shù)據(jù)庫的連接之后,就可用該連接發(fā)送 SQL 語句。Statement 對(duì)象用 Connection 的方法 createStatement 創(chuàng)建,如下列代碼段中所示:    Connection con = DriverManager

18、.getConnection(url, \"wyjava\", \"wyjava\");   Statement stmt = con.createStatement();   為了執(zhí)行 Statement 對(duì)象,被發(fā)送到數(shù)據(jù)庫的 SQL 語句將被作為參數(shù)提供給 Statement 的方法:    ResultSet rs = stmt.executeQuery(\"SELECT a, b, c FROM Table2\");   2、使用 Statement 對(duì)象執(zhí)行語句   Statement 接口提供了三種執(zhí)行 SQL 語句的方法:executeQuery、execu

19、teUpdate 和 execute。使用哪一個(gè)方法由 SQL 語句所產(chǎn)生的內(nèi)容決定。   方法 executeQuery 用于產(chǎn)生單個(gè)結(jié)果集的語句,例如 SELECT 語句。   方法 executeUpdate 用于執(zhí)行 INSERT、UPDATE 或 DELETE 語句以及 SQL DDL(數(shù)據(jù)定義語言)語句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 語句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一個(gè)整數(shù),指示受影響的行數(shù)(即更新計(jì)數(shù))。對(duì)于 CREATE TABLE 或 DROP

20、 TABLE 等不操作行的語句,executeUpdate 的返回值總為零。   方法 execute 用于執(zhí)行返回多個(gè)結(jié)果集、多個(gè)更新計(jì)數(shù)或二者組合的語句。因?yàn)槎鄶?shù)程序員不會(huì)需要該高級(jí)功能,所以本概述后面將在單獨(dú)一節(jié)中對(duì)其進(jìn)行介紹。   執(zhí)行語句的所有方法都將關(guān)閉所調(diào)用的 Statement 對(duì)象的當(dāng)前打開結(jié)果集(如果存在)。這意味著在重新執(zhí)行 Statement 對(duì)象之前,需要完成對(duì)當(dāng)前 ResultSet 對(duì)象的處理。   應(yīng)注意,繼承了 Statement 接口中所有方法的 PreparedStatement 接口都有自己的 executeQuery、executeUpdat

21、e 和 execute 方法。Statement 對(duì)象本身不包含 SQL 語句,因而必須給 Statement.execute 方法提供 SQL 語句作為參數(shù)。PreparedStatement 對(duì)象并不將 SQL 語句作為參數(shù)提供給這些方法,因?yàn)樗鼈円呀?jīng)包含預(yù)編譯 SQL 語句。CallableStatement 對(duì)象繼承這些方法的 PreparedStatement 形式。對(duì)于這些方法的 PreparedStatement 或 CallableStatement 版本,使用查詢參數(shù)將拋出 SQLException。   3、語句完成   當(dāng)連接處于自動(dòng)提交模式時(shí),其中所執(zhí)行的語句在完成時(shí)將自動(dòng)提交或還原。語句在已執(zhí)行且所有結(jié)果返回時(shí),即認(rèn)為已完成。對(duì)于返回一個(gè)結(jié)果集的 executeQuery 方法,在檢索完 ResultSet 對(duì)象的所有行時(shí)該語句完成。對(duì)于方法 executeUpdate,當(dāng)它執(zhí)行時(shí)語句即完成。但在少數(shù)調(diào)用方法 execute 的情況中,在檢索所有結(jié)果集或它生成的更新計(jì)數(shù)之后語句才完成。   4、關(guān)閉 Statement 對(duì)象   Statement 對(duì)象將由 Java 垃圾收集程序自動(dòng)關(guān)閉。而作為一種好的編程風(fēng)格,應(yīng)在不需要 Statement 對(duì)象時(shí)顯式地關(guān)閉它們。這將立即釋放 DBMS 資源,有助于避免潛在的內(nèi)存問題。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!