1. 程式人生 > >預處理語句的使用-程式碼典型缺陷分析(一)

預處理語句的使用-程式碼典型缺陷分析(一)

BAD:

       儘管這塊程式碼能夠正確執行,能夠完成都應的業務邏輯的處理,但這個預處理語句使用是有問題的。因為這個SQL語句是動態拼接而來的,這樣處理和Statement直接處理幾乎一點區別也沒有,一點也沒體現出運用PrearedStatement的優勢。

       正確使用是以引數化的形式給preparedStatement傳引數,而不是動態拼接SQL語句,如下:

GOOD:

       因為以引數化的形式使用PreparedStatement,會對應SQL進行一個預編譯,尤其是多次對資料庫進行操作的話,這樣能很大程度上提高執行的效率,而且這樣方式能夠預防SQL注入攻擊(具體原因請參考我的博文:

預處理為什麼能防止SQL注入),所以開發過程總框架DAO層的方法如果有引數化的形式查詢,就不要懶省事直接動態拼接SQL語句。

歡迎關注我的部落格,敬請關注程式碼典型缺陷分析系列下一篇!

如果過程中有講解的不合理或者不對或者你有更好的想法,還望大牛們留下你們的寶貴文字,以便你、我、大家更好的學習與進步!