#{}是預編譯處理,$ {}是字符串替換(當做佔位符來用)。
mybatis在處理#{}時,會將sql中的#{}替換爲?號,調用PreparedStatement的set方法來賦值;
mybatis在處理 $ {} 時,就是把 ${} 替換成變量的值。
使用 #{} 可以有效的防止SQL注入,提高系統安全性。SQL注入是發生在編譯的過程中,因爲惡意注入了某些特殊字符,最後被編譯成了惡意的執行操作。而預編譯機制則可以很好的防止SQL注入。
#{}是預編譯處理,$ {}是字符串替換(當做佔位符來用)。
mybatis在處理#{}時,會將sql中的#{}替換爲?號,調用PreparedStatement的set方法來賦值;
mybatis在處理 $ {} 時,就是把 ${} 替換成變量的值。
使用 #{} 可以有效的防止SQL注入,提高系統安全性。SQL注入是發生在編譯的過程中,因爲惡意注入了某些特殊字符,最後被編譯成了惡意的執行操作。而預編譯機制則可以很好的防止SQL注入。