MyBatis if-else条件分岐の書き方と注意点【徹底解説】
MyBatisでは、要素を使用して条件判断を実現することができます。条件に応じてSQL文に動的に条件文を追加することができます。
以下はサンプルコードです。
<select id="selectUsers" parameterType="map" resultType="User">
SELECT * FROM users
<where>
<if test="username != null">
AND username = #{username}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
条件に基づいて、AND username = #{username}とAND age = #{age}の2つの条件文を動的に追加しました。
ユーザー名と年齢の両方が空でない場合、SQL文は次のようになります:
SELECT * FROM users
WHERE username = ? AND age = ?
ユーザー名が空であり、年齢が空でない場合、SQL文は次のようになります。
SELECT * FROM users
WHERE age = ?
もしusernameが空でなく、ageが空である場合、SQL文は次のようになります。
SELECT * FROM users
WHERE username = ?
要素を使用することで、条件に応じて動的にSQL文を構築することができます。実際の開発で非常に役立ちます。