在 MyBatis 中,可以使用 <if>
標(biāo)簽來(lái)實(shí)現(xiàn)條件判斷,類(lèi)似于程序中的 if-else 語(yǔ)句。下面是一個(gè)示例:
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM users
<where>
<if test="username != null">
AND username = #{username}
</if>
<if test="email != null">
AND email = #{email}
</if>
</where>
</select>
在上面的示例中,根據(jù)傳入的參數(shù)來(lái)動(dòng)態(tài)拼接 SQL 語(yǔ)句,如果 username
或 email
不為空,則會(huì)加上對(duì)應(yīng)的條件。 <if>
標(biāo)簽中的 test
屬性用于指定條件判斷的表達(dá)式,只有表達(dá)式的值為 true 時(shí)才會(huì)執(zhí)行對(duì)應(yīng)的內(nèi)容。
需要注意的是,如果使用多個(gè) <if>
標(biāo)簽來(lái)實(shí)現(xiàn)多個(gè)條件判斷,需要注意條件之間的邏輯關(guān)系,比如使用 AND
或 OR
來(lái)連接條件。如果條件比較復(fù)雜,可以使用 <choose>
和 <when>
標(biāo)簽來(lái)實(shí)現(xiàn)更復(fù)雜的條件判斷邏輯。