본문 바로가기
쿤즈 Dev/Spring Boot

[Spring Boot] Mybatis 에서 SQL 조건문 사용 방법

by Koonz:) 2021. 3. 8.
728x90

스프링부트 프레임워크를 사용하면서 Mybatis를 이용해 DB에 접근해서 데이터를 가져오다보면 여러가지 다양한 조건이 필요합니다. 특히 조건이 다양하고 null 값이 포함될 수 있는경우 where 절에는 and 를 붙여서 길어질 수 있죠.

 

 

이때 저의 경우는 문제점이 하나 발생했습니다. 이번 포스팅에서는 스프링 부트 Mybatis 사용시에 발생될 수 있는 where절의 문제점을 해결해 보도록 하겠습니다.


Spring Boot Mybais 조건 활용하기

SQL문을 이용해서 Query를 할 경우 다양한 조건이 포함될 수 있습니다. 이때 if ~ else와 동일한 조건문을 만들 수 있습니다. 이렇게 만드는 이유는 다음과 같습니다.

 

SELECT *
FROM board
WHERE 조건1 and 조건2 and 조건3

 

만약 조건1이 null이라 포함되지 않는다고 하면 구문에서 where 이 사라질 수 있습니다. 즉, 조건1이 무조건 있어야만 where절의 시작이 될 수 있다는 것이죠. 그래서 java에서는 모두 if 문을 사용해서 지금 조건이 처음 조건인지를 판단하도록 합니다.

 

하지만 Mybatis에서 사용하려 하니 순간 막막했습니다. 그래서 Mybatis 문법을 찾아보니 아래와 같이 사용할 수 있었습니다.

<where>
  <if test="condition1">AND 조건1</if>
  <if test="condition2">AND 조건2</if>
  <if test="condition2">AND 조건3</if>
</where>

첫 구문부터 AND가 있지만 이게 첫 번째 조건이면 Mybatis에서 알아서 제거하고 조건문을 만들어 줍니다. 덕분에 굉장히 편해진 구문이 되었습니다.


다양한 조건이 있는 경우에 Mybatis에서 활용할 수 있는 <where>과 <if>문법에 대해서 알아보았습니다. 처음 시작하면 익숙해지기까지 계속 오류를 잡아내고 새로운 것을 배워야하는 어려움은 있지만 프로젝트를 만들다보면 금방 적응하고 익숙해 지게 됩니다. 도움이 되셨으면 합니다. 이상입니다.

댓글