當重複執行多次一個sql,而只是參數不同時,執行多少次sql
一、Statement爲一條Sql語句生成執行計劃
Statement就會生成多少個個執行計劃,而且每次都是從零開始執行,效率不高;
Statement會將變量直接用於sql,這點也不安全。
二、PreparedStatement只生成一個執行計劃
而PreparedStatement只生成一次執行計劃,對sql語句進行了預處理,通過綁定變量,每次改變變量的值,來進行新的查詢,效率較高;
PreparedStatement會將變量強制類型轉換,然後裝入sql語句的“?”中,比較安全對於庫中數據類型來說。
preparedStatement.setDate(1, java.sql.Date.valueOf(dtstr)); preparedStatement.setString(2,orderId); preparedStatement.setString(3,popuId);
當執行一次或者少量若干次語句
當sql語句執行少次時,最好還是用statement,雖然PreparedStatement操作的比較快,但是系統開銷 比較大