2020. 8. 22. 17:02ㆍ개발/기타
Spring Boot에서 MyBatis를 사용할때마다 구글링하는 자신의 모습을 발견하고 까먹기전에 셋팅방법을 기록한다.
0. 구조
아래와같이 controller, domain, mapper, service 폴더를 생성한다.
1. pom.xml 작성
pom.xml에 2개의 dependency를 등록한다.
1. 로컬에 MariaDB로 DB를 구성했기때문에 MariaDB JDBC를 등록했다. JDBC는 Java로 DB에 접근 및 제어를 가능하게 해주는 API다.
2. mybatis는 JDBC를 좀 더 편하게 사용할 수 있도록해주는 라이브러리인데 JDBC의 결과 및 설정 매핑을 대신해주고, 결정적으로 mybatis를 사용하면 Java 코드가 간결해진다.
....
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
....
2. DB접속정보 작성
application.yml에 DB접속 정보와 mapper의 경로를 지정해준다. 해당 경로에 있는 xml을 mybatis가 읽어서 쿼리문을 실행한다.
3. 도메인 작성
domain폴더에 mybatis의 결과를 담을 class를 선언한다. 보통 Select문의 결과 컬럼을 그대로 쓴다.
4. MapperScan 어노테이션
Application이 시작되는 java파일에 @MapperScan 어노테이션을 추가한다.
해당 어노테이션의 basePackages 파라미터값으로 mapper 인터페이스가 작성된 패키지경로를 넣는다.
Spring Boot가 실행되면 해당 패키지로 이동해서 mapper들을 읽어들인다.
5. Mapper 인터페이스
4번에서 작성한 MapperScan이 Mapper를 인식할수 있도록 @Mapper 어노테이션을 달아준다.
6. Mapper xml 작성
resources/mapper 아래에 mapper.xml파일을 작성한다. mapper태그를 작성하고 그안에 실행할 쿼리문을 넣으면된다.
mapper 태그에는 5번에서 작성한 mapper 인터페이스를 선언해준다.
7. 서비스 인터페이스 작성
서비스인터페이스를 작성한다.
8. 서비스 구현
7번에서 만든 인터페이스를 구현한다. 해당 클래스가 Service인걸 알리기 위한 @Service 어노테이션을 작성한다. 여기서 5번에서 작성한 mapper 인터페이스에 Bean을 주입한다. 비즈니스로직이 존재하는경우 serviceImpl에서 구현한다.
9. 컨트롤러 구현
마지막으로 컨트롤러를 구현한다. 클라이언트의 요청을 받아서 서비스를 호출하는 부분이다. 여기서 서비스 인터페이스에 serviceImpl을 주입한다.
'개발 > 기타' 카테고리의 다른 글
[React] JSX의 if/else문 (0) | 2020.09.09 |
---|---|
[React] 변수 및 속성, 메서드 사용 (0) | 2020.09.08 |
Anaconda에서 자주 사용하는 명령어 (0) | 2020.04.11 |
[Django] 프로젝트 폴더 생성하기 (0) | 2020.02.02 |
[PL/SQL] 값 입력받기 (0) | 2019.12.22 |