當我們需要寫複雜的 SQL 語句,往往需要拼接,而拼接 SQL ,稍微不注意,由于引号,空格等缺失可能都會導緻錯誤。
那麼怎麼去解決這個問題呢?
我們可以使用mybatis的 動态SQL,通過 if, choose, when, otherwise, trim, where, set, foreach等标簽,可組合成非常靈活的SQL語句,進而在提高 SQL 語句的準确性的同時,也大大提高了開發人員的效率。
1.where+if這個“where”标簽會知道如果它包含的标簽中有傳回值的話,它就插入一個‘where’。此外,如果标簽傳回的内容是以AND 或OR 開頭的,則它會剔除掉。
在以上執行個體中,我們就是使用where-if語句進行多參數的傳遞,下面我們再示範傳一個參數的時候。
我們發現,當第二個參數是空值時,這裡where之後的條件語句也少了一個。
2.where+choose有時候,我們不想用到所有的查詢條件,隻想選擇其中的一個,查詢條件有一個滿足即可,使用 choose 标簽可以解決此類問題,類似于 Java 的 switch 語句
這是在choose語句傳遞一個參數時的情況。那麼當我們傳遞兩個參數是呢?
當我們傳遞兩個參數時,他也會隻擷取其中一個參數。這和我們javas的witch一樣,當第一次判斷成功時,之後的代碼就不會再走了。
3.where+bindbind可以将OGNL表達式的值綁定到一個變量中,友善後來引用這個變量的值
bind語句一般用于sql的模糊查詢。
就先介紹這三個吧,拜拜。