2013-03-10 80 views
0

一個一般性的問題,但我無法找到答案的:。如果PreparedStatement的可運行甚至靜態的sql語句,爲什麼我們需要在java.sql中聲明*爲什麼我們需要的java.sql聲明*包

編輯: 感謝墊

,但我關心的是,爲什麼在那裏聲明取代PreparedStatement的人會使用語句,而不是使用PreparedStatement的,換句話說

注:我的理解是 - 可以使用聲明爲靜態查詢,也沒有解僱而不是經常查詢的PreparedStatement IES(原因:性能,因爲SQL預編譯)

+3

你有沒有注意到的PreparedStatement擴展語句,而不是擴展它的唯一一個? – Mat 2013-03-10 10:24:05

回答

0

一般情況下,PreparedStatement的將有更好的表現,當你在你的代碼相同的查詢,因爲它使查詢緩存。

但如果你的應用程序,如果相同的查詢的頻率是非常少的,那麼的PreparedStatement不會改善任何性能。在這裏你應該使用語句,這是你基於jdbc開發代碼庫的主要選擇。

+1

感謝您的回覆,但您可以這樣說:語句是您基於jdbc開發代碼庫的主要選擇。問這個,因爲這將幫助我自己找到這些類型的問題的答案(希望你不要說oracle文檔/谷歌搜索) – 2013-03-10 10:49:05

+0

因爲對於JDBC使用默認選擇是Statement。當我們使用存儲過程時,我們不會使用callablestatement,當我們有機會保存查詢的執行計劃並將結果提供給用戶而不需要進一步的執行計劃時,我們將使用prepared語句。這隻會發生整個查詢語句與前一個相同。但是這在某些應用程序中會發生。在大多數情況下,我們使用statement作爲默認情況,因爲大多數情況下查詢都不相同。 – 2013-03-10 11:10:45