2012-07-10 28 views

回答

-1

一句話:是的。只要確保不要在存儲過程中嵌入事務邏輯。把它留給JDBC驅動程序或事務管理器。

有沒有像試圖爲自己和看到的。我認爲這比在這裏提問更好。

0

它不會工作,connection.setAutoCommit(真),在這方面是一個Java對象。您不能在存儲過程中使用它。

我們有一個名爲自動提交一個SQL系統變量,如果我們把它作爲我們編寫存儲過程,你的程序將自動提交什麼都你試圖執行的結果。

0

是它的工作原理。實際上,自動提交默認爲開啓。這chapter會給你一個想法,但你節省一些時間:

默認情況下,JDBC的自動提交功能上,這意味着它在執行每個SQL語句被提交。如果您的程序執行了多個SQL語句,那麼可以通過關閉自動提交來實現小幅度的性能提升。

閱讀CallableStatement的部分太:

你可能還記得,CallableStatement的對象用於執行數據庫存儲過程。我將CallableStatement對象保存到最後,因爲它們是所有JDBC SQL執行接口中表現最慢的。這可能聽起來違反直覺,因爲通常認爲調用存儲過程比使用SQL更快,但事實並非如此。給定一個簡單的SQL語句和一個完成相同任務的存儲過程調用,簡單的SQL語句將始終執行得更快。爲什麼?因爲使用存儲過程,您不僅需要執行SQL語句所需的時間,還需要處理過程調用本身的開銷所需的時間。

我認爲它會幫助你做出有關你的應用程序性能的決定。

相關問題