(個人理解:執行速度,使用方便,代碼的可讀性維護性,提高性能,安全性?五個方面考慮)
1、PreparedStatement接口繼承Statement,PreparedStatement實例包含了預編譯的SQL語句,所以PreparedStatement的執行要快于Statement。
2、作為Statement子類,PreparedStatement繼承了Statement的所有功能,三個方法execute、executeQuery、executeUpdate已被更改為不需要參數。
3、在JDBC應用中,任何情況下都不適用Statement:
? ? 1).代碼的可讀性和維護性,Statement需要拼接,而PreparedStatement不用。
? ? 2).PreparedStatement盡最大可能提高性能,DB有緩存機制,已編譯的SQL語句再次被調用不會編譯。
? ? 3).最重要一點安全性,Statement有SQL注入問題,而PreparedStatement傳入的內容不會和sql有任何的匹配關系。