1、preparedStatement 實例包含已編譯的 SQL 語句,所以其執行速度要快於 Statement 對象。
2、preparedStatement可讀性和可維護性都要好很多
String sql="insert into tb_name(src1,src2,src3,src4) values (?,?,?,?)"
ps=conn.prepareStatement(sql);
ps.setString(1,var1);
ps.setString(2,var2);
ps.setString(3,var3);
ps.setString(4,var4);
ps.executeUpdate();
3、preparedStatement提交的sql語句在被DB的編譯器編譯後的執行代碼被緩存下來,那麼下次調用時只要是相同的預編譯語句就不需要編譯,最大可能提高性能.
4、最重要的一點,防止惡意的sql語法,保障安全性
String sql = "select * from tablename wherename= '"+name+"' and passwd='"+passwd+"'";如果我們把[' or '1' = '1]作爲varpasswd傳入進來
1=1無論如何都會成立