[꼼꼼한 개발자] 꼼코더

14. 코드로 배우는 스프링 웹 프로젝트 - [스프링과 DataBase 연동] - 스프링과 연동 처리 본문

Spring/코드로 배우는 스프링 웹 프로젝트

14. 코드로 배우는 스프링 웹 프로젝트 - [스프링과 DataBase 연동] - 스프링과 연동 처리

꼼코더 2023. 1. 2. 19:34
반응형
 

🍃 스프링과 연동 처리

SqlSessionFactory를 이용해서 코드를 작성해도

직접 Connection 얻고 JDBC 코딩이 가능은 하다. 하지만

 

우리는 좀 더 편하게 작업하기 위해 SQL 처리 설정을 분리하고

자동으로 처리 되는 방식을 이용해야 한다.

 

이를 위해 Mybatis의 Mapper라는 존재를 작성해야 한다.

 

Mapper는 쉽게 말해 SQL과 그에 대한 처리를 지정하는 역할이다.

Mybatis-Spring을 이용하면 Mapper를 XML과 인터페이스 + 어노테이션 형태로 작성할 수 있다.


🔌 Mapper 인터페이스

Mapper를 작성하는 작업은 XML도 이용할 수 있지만

이번 예제에서는 최소한의 코드를 작성하는 Mapper 인터페이스를 사용하겠다.

 

 

👨🏻‍💻 TimeMapper 예제 추가

mapper 패키지 생성 → TimeMapper 인터페이스 추가 

TimeMapper 인터페이스에는 MyBatis의 어노테이션을 이용해서 SQL을 메서드에 추가한다.


⚙️ Mapper 설정

Mapper 작성 후 MyBatis가 동작시 Mapper를 인식할 수 있게 root-context.xml를 추가적으로 설정한다.

가장 간단한 방식인 <mybatis:scan>으로 진행하자.

👨🏻‍💻  root-context.xml 수정

root-context.xml 파일 → 하단 ‘Namespaces’ 항목 → mybatis-spring 선택 → 소스 추가

<mybatis-spring:scan> 태그의 base-package 속성은

지정된 패키지의 모든 Mybatis 관련 어노테이션을 찾아서 처리한다.


☕️ Java 설정을 이용하는 경우

클래스 선언부에 mybatis-spring에서 사용하는 @MapperScan을 이용해서 처리

 

👨🏻‍💻RootConfig 클래스 수정


📑 Mapper 테스트

Mybatis-Spring은 Mapper 인터페이스를 이용해서 실제 SQL 처리가 되는 클래스를 자동으로 생성한다.

 

개발자는 인터페이스와 SQL만으로 모든 JDBC 처리를 끝낼 수 있다.

 

👨🏻‍💻 TimeMapperTests 클래스 작성

💁🏻‍♂️ 결과

TimeMapperTests는 TimeMapper가 정상적으로 사용이 가능한지 알아보기 위한 테스트 코드

정상 동작시 스프링 내부에 TimeMapper타입으로 만들어진 스프링 객체(bean)가 존재한다는 뜻

 

 

timeMapper.getClass().getName()은 실제 동작하는 클래스의 이름을 확인해 준다.

실행 결과를 보면 개발시 인터페이스만 만들어주었는데

내부적으로 적당한 클래스가 만들어진 것을 확인할 수가 있다.

 

(이에 대한 자세한 이야기는 스프링 AOP에서..)

 


 

🧹 최종 정리

  • Mybatis의 Mapper는 더 편하게 작업하기 위해 SQL 처리 설정을 분리하고 자동으로 처리 되는 방식이다.
  • Mapper는 쉽게 말해 SQL과 그에 대한 처리를 지정하는 역할
  • Mybatis-Spring을 이용하면 Mapper를 XML과 인터페이스 + 어노테이션 형태로 작성할 수 있다.
  • MyBatis의 어노테이션을 이용해서 SQL을 메서드에 추가할 수 있다.(@SELECT 등)
  • <mybatis-spring:scan> 태그의 base-package 속성은 지정된 패키지의 모든 Mybatis 관련 어노테이션을 찾아서 처리한다.
  • JAVA로 mapper 처리시 mybatis-spring에서 사용하는 @MapperScan을 이용한다.
  • Mybatis-Spring은 Mapper 인터페이스를 이용하여 실제 SQL 처리가 되는 클래스를 자동으로 생성한다. 그럼 개발자는 인터페이스와 SQL만으로 모든 JDBC 처리를 끝낼 수 있다.

 

 

 

위 내용은 코드로 배우는 스프링 웹 프로젝트 교재를 참고하여 작성되었습니다.

 

코드로 배우는 스프링 웹 프로젝트 - YES24

이 책은 Spring Framework(이하 스프링)를 사용해서 말 그대로 ‘웹 프로젝트’를 어떻게 진행하는지를 설명하는 책이다. 웹 프로젝트라고 거창하게 표현하지만, 좀 더 구체적으로는 스프링으로 웹

www.yes24.com

 

 

 

Comments