Java中PreparedStatement與Statement區別,與實際過程中的特殊用法

PreparedStatement其實是相當於預處理,它會把語句進行分析後保存到緩存塊中,下次再執行該語句時就會快,適用於循環調用同一語句時.

 

Statement就是老老實實的執行語句,是不會進行預處理的.

 

最近開發出現一個問題,我們要調用語句生成一個臨時表#KK,然後調用存儲過程來訪問該表計算取數,如果用PreparedStatement來處理,如果每次用new的方法,則出現調用存儲過程時無法找到臨時表#KK,如果用同一個PreparedStatement,不重新創建實例,就可以在存儲過程訪問到臨時表,但句柄commit時會出現,多語句無法commit的錯誤提示,後來問人才知道,由於PreparedStatement做了預處理,當第二次調用存儲過程時,把原來第一句生成臨時表的語句給抹掉了,當commit時,受影響的數據找到了,但去找不到相關的語句進行commit所以報錯了.

 

此時就要用Statement,而且幾句語句用同一個Statement就可以解決這個問題

發佈了57 篇原創文章 · 獲贊 7 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章