BAD:
盡管這塊代碼能夠正确執行,能夠完成都應的業務邏輯的處理,但這個預處理語句使用是有問題的。因為這個SQL語句是動态拼接而來的,這樣處理和Statement直接處理幾乎一點差別也沒有,一點也沒展現出運用PrearedStatement的優勢。
正确使用是以參數化的形式給preparedStatement傳參數,而不是動态拼接SQL語句,如下:
GOOD:
因為以參數化的形式使用PreparedStatement,會對應SQL進行一個預編譯,尤其是多次對資料庫進行操作的話,這樣能很大程度上提高執行的效率,而且這樣方式能夠預防SQL注入攻擊(具體原因請參考我的博文:預處理為什麼能防止SQL注入),是以開發過程總架構DAO層的方法如果有參數化的形式查詢,就不要懶省事直接動态拼接SQL語句。
循環體中用“+”拼接字元串-代碼典型缺陷分析(二)
數組轉List-代碼典型缺陷分析(三)
轉載請注明—作者:Java我人生(陳磊興) 原文出處:http://blog.csdn.net/chenleixing/article/details/44134237
歡迎關注我的部落格,敬請關注代碼典型缺陷分析系列下一篇!
如果過程中有講解的不合理或者不對或者你有更好的想法,還望大牛們留下你們的寶貴文字,以便你、我、大家更好的學習與進步!