在學(xué)習(xí)了標簽中使用時,只要test中的表達式為 true,就會執(zhí)行 if 標簽中的條件,并且會拼接到where語句后。但是,有時候我們并不想使用所有條件,也許只想從多個選項中選擇一個而已。這個時候再使用標簽已經(jīng)不夠,MyBatis提供了choose 標簽。標簽之間的關(guān)系是與(and)的關(guān)系,而標簽之間是或(or)的關(guān)系。
標簽按順序逐個判斷內(nèi)部標簽的test條件出否成立,如果遇到一個條件成立,則結(jié)束。當中所有的條件都不成立時,則會執(zhí)行中的語句。類似于Java的switch 語句,為switch,為case,則為default。
小博老師給大家演示下如何使用標簽。先回顧下昨天的Mapper文件內(nèi)容:
如果用標簽表示,內(nèi)容如下:
兩者的區(qū)別在于,如果userName與userId同時不為空,只會按照userName的條件查詢,忽略userId條件。而會把兩個條件拼接起來一起查詢。