模糊查詢
在使用模糊查詢的時候,mysql使用的是最左原則,所以模糊查詢語句:
select * from sys_user where user_name like '#{userName}%'
我們會限制userName:僅支持中文,字母,特殊字符
那么如果查詢的輸入框中使用 '','%' 來匹配的話,會全量查詢,而不是我們想要的 '','%' 開頭的匹配列;
解決
在查詢的時進行轉義:
user.setUserName(user.getUserName.replaceAll("_","\\\\_").replaceAll("%","\\\\%"))
mysql通配符
%:匹配任何字符出現任意次數
_:匹配單個字符