[Spring] MyBatis 사용법 및 동적 쿼리 정리


• MyBatis는 JdbcTemplate보다 많은 기능을 제공하며, SQL을 XML에 편리하게 작성하고 동적 쿼리를 매우 편하게 작성할 수 있다. MyBatis를 사용하려면 약간의 설정이 필요하지만, Spring Boot를 사용하면 편하게 설정할 수 있다.
• MyBatis 사용법은 먼저 MyBatis 매핑 XML을 호출해주는 Mapper Interface를 생성하고, 그 후에 src/main/resources 하위에 패키지 경로를 맞추어 xml 파일을 생성한다. 이때, MyBatis 스프링 연동 모듈은 애플리케이션 로딩 시점에 @Mapper가 붙어있는 인터페이스를 조회한 후, 동적 프록시 기술을 사용하여 해당 인터페이스의 구현체를 생성하여 스프링 빈에 등록한다.
• MyBatis에서는 SQL 쿼리를 작성할 때 <select>, <insert>, <update> 등을 사용하며, 매퍼 인터페이스에 설정한 메서드 이름을 id로 지정하고, 매퍼에서 넘긴 객체의 프로퍼티 이름을 #{}로 사용한다. SQL 인젝션 공격을 방지하기 위해 ${} 사용을 피하며, 데이터베이스가 키를 생성해주는 IDENTITY 전략을 사용할 때는 useGeneratedKeys를 사용한다.
• MyBatis는 동적 쿼리를 지원하며, if문을 통해 조건에 따라 조건절을 추가하거나, choose, when, otherwise를 통해 switch 문과 같은 기능을 수행한다. 또한, where나 set과 같은 키워드를 사용하여 동적으로 변하는 SQL 문제를 해결할 수 있다.

북마크
공유하기
신고하기