java中Statement詳細用法。

來源:互聯網
上載者:User

標籤:exe   參數   擷取   except   版本   避免   進階功能   基本   專用   

1、建立 Statement 對象

建立了到特定資料庫的串連之後,就可用該串連發送 SQL 陳述式。Statement 對象用 Connection 的方法createStatement 建立,如下列程式碼片段中所示:

Connection con = DriverManager.getConnection(url, "sunny","");
Statement stmt = con.createStatement();

為了執行 Statement 對象,被發送到資料庫的 SQL 陳述式將被作為參數提供給 Statement 的方法:

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROMTable2");

2、使用 Statement 對象執行語句

Statement 介面提供了三種執行 SQL 陳述式的方法:executeQuery、executeUpdate 和execute。使用哪一個方法由 SQL 陳述式所產生的內容決定。

方法 executeQuery 用於產生單個結果集的語句,例如 SELECT 語句。

方法 executeUpdate 用於執行 INSERT、UPDATE 或 DELETE 語句以及 SQLDDL(資料定義語言 (Data Definition Language))語句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE語句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的傳回值是一個整數,指示受影響的行數(即更新計數)。對於CREATE TABLE 或 DROP TABLE 等不操作行的語句,executeUpdate 的傳回值總為零。

方法 execute用於執行返回多個結果集、多個更新計數或二者組合的語句。因為多數程式員不會需要該進階功能,所以本概述後面將在單獨一節中對其進行介紹。

執行語句的所有方法都將關閉所調用的 Statement 對象的當前開啟結果集(如果存在)。這意味著在重新執行 Statement對象之前,需要完成對當前 ResultSet 對象的處理。

應注意,繼承了 Statement 介面中所有方法的 PreparedStatement 介面都有自己的executeQuery、executeUpdate 和 execute 方法。Statement 對象本身不包含 SQL語句,因而必須給 Statement.execute 方法提供 SQL 陳述式作為參數。PreparedStatement 對象並 不將SQL 陳述式作為參數提供給這些方法,因為它們已經包含先行編譯 SQL 陳述式。CallableStatement 對象繼承這些方法的PreparedStatement 形式。對於這些方法的 PreparedStatement 或 CallableStatement版本,使用查詢參數將拋出 SQLException。

3、陳述式完成

當串連處於自動認可模式時,其中所執 行的語句在完成時將自動認可或還原。語句在已執行且所有結果返回時,即認為已完成。對於返回一個結果集的executeQuery 方法,在檢索完 ResultSet 對象的所有行時該陳述式完成。對於方法executeUpdate,當它執行時語句即完成。但在少數調用方法 execute的情況中,在檢索所有結果集或它產生的更新計數之後語句才完成。

statement-相關概述Statement 對象用於將 SQL 陳述式發送到資料庫中。實際上有三種 Statement 對象,它們都作為在給定串連上執行 SQL語句的包容器:Statement、PreparedStatement(它從 Statement 繼承而來)和CallableStatement(它從 PreparedStatement 繼承而來)。它們都專用於發送特定類型的 SQL 陳述式:Statement 對象用於執行不帶參數的簡單 SQL 陳述式;PreparedStatement 對象用於執行帶或不帶 IN參數的先行編譯 SQL 陳述式;CallableStatement 對象用於執行對資料庫已預存程序的調用。


Statement 介面提供了執行語句和擷取結果的基本方法。PreparedStatement 介面添加了處理 IN 參數的方法;而CallableStatement 添加了處理 OUT 參數的方法。

有些 DBMS將已預存程序中的每條語句視為獨立的語句;而另外一些則將整個過程視為一個複合陳述式。在啟用自動認可時,這種差別就變得非常重要,因為它影響什麼時候調用commit 方法。在前一種情況中,每條語句單獨提交;在後一種情況中,所有語句同時提交。

4、關閉 Statement 對象

Statement 對象將由 Java 垃圾收集程式自動關閉。而作為一種好的編程風格,應在不需要 Statement對象時顯式地關閉它們。這將立即釋放 DBMS 資源,有助於避免潛在的記憶體問題。

java中Statement詳細用法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.