是當成功插入數據到數據庫時候,這個會返回壹個大於1的數字,來表明數據成功插入庫之中
sql註入發生的時間,sql註入發生的階段在sql預編譯階段,當編譯完成的sql不會產生sql註入,采用jdbc操作數據時候,preparedStatement 預編譯對象會對傳入sql進行預編譯。
那麽當傳入id 字符串為 "update ft_proposal set id = 3;drop table ft_proposal;" 這種情況下就會導致sql註入刪除ft_proposal這張表。
預編譯語句
處理使用預編譯語句之外,另壹種實現方式可以采用存儲過程,存儲過程其實也是預編譯的,存儲過程是sql語句的集合,將所有預編譯的sql語句編譯完成後,存儲在數據庫上。
當傳入的參數為3;drop table user;當執行時可以看見打印的sql語句為:select name from usre where id = ?;不管輸入何種參數時,都可以防止sql註入,因為mybatis底層實現了預編譯。