Statement 和PreparedStatement的區別

 

1. Statement用於處理靜態 SQL 語句, PreparedStatement用於處理動態SQL語句,在執行前會有一個預編譯的過程,它是有時間開銷的,雖然相對於數據庫的操作該時間開銷可以忽略不計。但是後者的預編譯結果會被緩存,而不論動態值發生什麼樣的變化。

 

 

2. PreparedStatement繼承於Statement,通常的JDBC實現中PreparedStatement最終還是通過Statement的相關方法來執行SQL的(可以做少量優化),其最主要的優勢在於,可以減少SQL的編譯錯誤(在JDBC中就可以捕獲部分異常而不是由數據庫服務器執行時返回錯誤代碼)、增加SQL安全性(減少SQL注入的機會)。

 

 

3,使用建議:如果SQL語句是執行一次,且不需向裏帶參數,可用Statement。

如果SQL語句多次執行,並且需要動態的向裏帶參,用PreparedStatement。

 

一般建議使用PreparedStatement。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章