在程序中寫代碼用於多條件查詢,須要根據客戶傳入的查詢參數來構建sql語句,例如根據中文名、英文名查詢學生表sql
String sql = "SELECT * FROM student WHERE 1=1 ";
若是用戶傳入了中文名spa
if (StringUtils.isNotBlank(request.name)) { sql = sql + "name = ? "; }
若是用戶傳入了英文名code
if (StringUtils.isNotBlank(request.englishName)) { sql = sql + "englishName= ?"; }
這樣拼sql語句,如果用戶一個參數都沒傳,sql就是"SELECT * FROM student WHERE ",那就報錯了blog
所以第一行代碼在WHERE 後面加上 1= 1就能保住客戶未傳參數時也能正常執行class