MyBatis if 類似于 Java 中的 if 語句,是 MyBatis 中最常用的判斷語句。使用 if 標簽可以節(jié)省許多拼接 SQL 的工作,把精力集中在 XML 的維護上。
if 語句使用方法簡單,常常與 test 屬性聯(lián)合使用。語法如下。
<if test="判斷條件"> SQL語句 </if>
當判斷條件為 true 時,才會執(zhí)行所包含的 SQL 語句。
最常見的場景是在 if 語句中包含 where 子句,例如。
<select id="selectAllWebsite" resultMap="myResult"> select id,name,url from website <if test="name != null"> where name like #{name} </if> </select>
以上代表表示根據(jù)網(wǎng)站名稱去查找相應的網(wǎng)站信息,但是網(wǎng)站名稱是一個可填可不填的條件,不填寫的時候不作為查詢條件。
可多個 if 語句同時使用。以下語句表示為可以按照網(wǎng)站名稱(name)或者網(wǎng)址(url)進行模糊查詢。如果您不輸入名稱或網(wǎng)址,則返回所有的網(wǎng)站記錄。但是,如果你傳遞了任意一個參數(shù),它就會返回與給定參數(shù)相匹配的記錄。
<select id="selectAllWebsite" resultMap="myResult"> select id,name,url from website where 1=1 <if test="name != null"> AND name like #{name} </if> <if test="url!= null"> AND url like #{url} </if> </select>