Java中PreparedStatement和Statement的區別

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無論如何都會成立​


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