首先修改UserMapper.xml中的selectByUser方法,此處將where 1 = 1改成使用where標簽,代碼如下:
當if條件都不滿足的時候,where元素中沒有內容,所以在SQL中不會出現where,也就不存在前面在where中使用if標簽中SQL錯誤的問題。如果if條件滿足,where元素的內容就是以and開頭的條件,where會自動去掉開頭的and,這也能保證where條件正確。和在where中使用if標簽中相比,這種情況下生成的SQL更干凈,更貼切,不會在任何情況下都有where 1 = 1 這樣的條件。