Mybatis if ~ else 적용하기
2024. 11. 27. 21:38ㆍJava/mybatis
<choose> 사용
<select id="selectUsers" resultType="User">
SELECT *
FROM users
WHERE 1=1
<choose>
<when test="name != null">
AND name = #{name}
</when>
<when test="age != null">
AND age = #{age}
</when>
<otherwise>
AND status = 'active'
</otherwise>
</choose>
</select>
<if> 사용
<select id="selectUsers" resultType="User">
SELECT *
FROM users
<where>
<if test="name != null">
name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
응용
<mapper namespace="UserMapper">
<select id="selectUsers" parameterType="map" resultType="User">
SELECT *
FROM users
<where>
<if test="name != null">
name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
<choose>
<when test="status != null">
ORDER BY status
</when>
<otherwise>
ORDER BY created_at DESC
</otherwise>
</choose>
</select>
</mapper>
update문에 사용
<update id="updateUser" parameterType="map">
UPDATE users
<set>
<if test="name != null">
name = #{name},
</if>
<if test="email != null">
email = #{email},
</if>
<if test="age != null">
age = #{age},
</if>
</set>
WHERE id = #{id}
</update>
'Java > mybatis' 카테고리의 다른 글
Mybatis 로그 설정 (0) | 2024.12.28 |
---|---|
Mybatis insert후 키값 반환하기 (0) | 2024.12.27 |
mybatis ORA-00979: GROUP BY 표현식이 아닙니다 (0) | 2024.11.26 |
mybatis를 이용해서 BLOB 저장 (1) | 2024.11.07 |
IN() 절 처리 (0) | 2024.11.07 |