[Java] 정말 간단한 Spring Boot와 MyBatis 연동
Spring Boot와 MyBatis를 정말 간단하게 연동하는 예제를 제공합니다.
이전에 네이버 블로그에 쓴 글인데, 검색 유입이 이쪽이 좋을 것 같아 옮겨 적습니다.
이번 글에서는 Spring Boot와 MyBatis를 정말 간단하게 연동해보겠습니다. 저도 인터넷 글들을 많이 참고하는데, "이것보다 쉬운 방법이 없다!"라고 생각되어 한 번 올리게 되었습니다. 참고한 글들을 보면 Factory를 생성하는 등의 Configure 과정을 거치는데요. 제가 소개해드리는 방법은 application.properties에 경로만 지정해주면 됩니다.
Environment
- JDK 8 (1.8)
- Spring Boot 2.4.2
- MyBatis 2.1.4
Steps
Spring Boot 프로젝트 생성
intelliJ IDEA 커뮤니티 버전이나 Eclipse를 쓰시는 경우 여기로 들어가신 뒤 설정해주시기 바랍니다.
패키지나 JDK 버전은 본인의 상황에 맞게 설정합니다. 중요한 것은 Dependencies를 설정할 때, MyBatis Framework를 포함시키시고, 연동할 DB의 Driver를 포함시킵니다.
그러면, 프로젝트 샘플이 구성되는데요. 그럼, src/main/resources/application.properties로 들어가서 아래와 같이 설정합니다.
spring.datasource.driverClassName=org.mariadb.jdbc.Driver # DB Driver의 패키지
spring.datasource.url=jdbc:mariadb://127.0.0.1:3306/test # DB Server의 URL, DB 지정
spring.datasource.username=test # DB ID
spring.datasource.password=1234 # DB PW
mybatis.type-aliases-package=com.example.demo.dto # Mapper에서 Return 할 객체들이 정의된 패키지 (DTO, VO 등)
mybatis.mapper-locations=mybatis/**/*.xml # mapper의 위치 -> root는 기본적으로 resources로 정의되어 있음.
위와 같이 값을 설정하시면 됩니다. 'mybatis.type-aliases-package'의 경우 복수로 설정하고 싶으시다면, 컴마(,)로 구분하셔서 작성하시면 되겠습니다.
저는 이렇게만 해서 연동이 끝났습니다. 기술의 발전 덕인지 정말 간단합니다. 아래는 간단하게 프로젝트를 구성하여 실제로 작동하는지 봐보겠습니다.
되는지 검증하기
MyBatis는 Mapper 인터페이스와 Mapper XML로 나뉩니다. 인터페이스는 Dao에서 명시적으로 사용할 수 있게 Return 타입과 메소드 명을 정의 했다고 생각하시면 되고, XML이 실제 SQL 문이 구성되어 있다고 보시면 되겠습니다.
Mapper 인터페이스는 위와 같이 리턴 타입과 메소드 명만 정의해주고요.
Mapper XML은 위와 같이 mapper namespace에 Mapper 인터페이스를 정의해주시고요. 그 밑에부터 진행하시면 됩니다.
select / insert 등 액션을 태그 이름으로 설정하고, id에는 메소드 명, resultType에는 리턴 할 객체를 적습니다. 이때 아래와 같이 리턴할 객체의 변수 명과 SQL 쿼리 결과의 컬럼명이 같아야합니다.
이렇게 하면 정말 간단한 연동 예제가 완성됩니다.
dao, service, controller 작업을 추가적으로 수행해준 뒤, Swagger 2로 테스트를 해본 결과 아래와 같이 제대로 작동하는 것을 확인할 수 있습니다.
이번에도 도움이 되셨으면 좋겠고요. Factory 같은거 보시면서 머리 싸매는 일이 줄으셨으면 좋겠습니다.