三種 Statement 物件的比較

2021-04-25 00:57:55 字數 1750 閱讀 8504

(1)statement

物件:用於執行不帶引數的簡單

sql

語句;

它提供了三種執行

sql語句的方法:

executequery()

:用於產生單個結果集的

sql,如

select語句

executeupdate

:用於執行

insert

、delete

、update

、create table

、drop table等

execute()

:用於執行返回多個結果集、多個更新計數或二者組合的語句,多數程式設計師不會需要該高階功能。

(2)preparedstatement

物件:用於執行帶或不帶引數的預編譯

sql 語句

preparedstatement

例項包含已編譯的

sql

語句,這也是將其命名冠以

「prepared」

的原因。包含於

preparedstatement

物件中的

sql

語句可具有乙個或多個

in 引數。

in 引數的值在

sql

語句建立時未被指定。相反的,該語句為每個

in 引數保留乙個問號(「?

」)作為佔位符。每個問號的值必須在該語句執行之前通過適當的

prestmt.set***()

方法來提供。 由於

preparedstatement

物件已預編譯過,所以其執行速度要快於

statement

物件。因此多次執行的

sql

語句經常建立為

preparedstatement

物件,以提高效率。

preparedstatement

介面也有自己的

executequery

、executeupdate

和execute

方法。statement

物件本身不包含

sql

語句,因而必須給

statement.execute

方法提供

sql

語句作為引數。

preparedstatement

物件並不將

sql

語句作為引數提供給這些方法,因為它們已經包含預編譯

sql

語句。

(3)callablestatement

物件:用於執行對資料庫儲存過程的呼叫。

將常用的或很複雜的工作,預先用

sql語句寫好並用乙個指定的名稱儲存起來

, 那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時

,只需呼叫

execute,

即可自動完成命令。

儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般

sql語句每執行一次就編譯一次

,所以使用儲存過程可提高資料庫執行速度。

當對資料庫進行複雜操作時

(如對多個表進行

update,insert,query,delete

時),可將此複雜操作用儲存過程封裝起來與資料庫提供的事務處理結合一起使用。

儲存過程可以重複使用

,可減少資料庫開發人員的工作量。安全性高

,可設定只有某此使用者才具有對指定儲存過程的使用權。

三種Statement區別

statement 用於普通的sql查詢 callablestatement 用於儲存過程 preparedstatement 用於預編譯的sql語句就是帶引數那種 statement 由方法 createstatement 所建立。statement 物件用於傳送簡單的 sql 語句。prepar...

Objective C 三種檔案匯入的方式比較

三種檔案匯入的方式比較 類的前項宣告 class import include 1 採用 class 類名的方式,它會告訴編譯器有這麼乙個類,目前不需要知道它內部的例項變數和方法是如何定義的,後面會告訴你,現在你就可以直接使用它,節約程式編譯時間 2 採用import方式,能避免重複匯入同一類,它匯...

Objective C 三種檔案匯入的方式比較

三種檔案匯入的方式比較 類的前項宣告 class import include 1 採用 class 類名的方式,它會告訴編譯器有這麼乙個類,目前不需要知道它內部的例項變數和方法是如何定義的,後面會告訴你,現在你就可以直接使用它,節約程式編譯時間 2 採用import方式,能避免重複匯入同一類,它匯...