본문 바로가기
✨ Back-end/Spring-Boot

[Spring] 스프링에서 Mybatis Oracle 데이터베이스 연동하기

by 환풍 2023. 3. 14.
728x90
반응형

 

1. 프로젝트 생성 시 SQL 체크항목 추가

 

2. application.properties 설정

쿼리가 실행되면 콘솔에 상세하게 뜨기 위해  위 두개를 주석처리하고 조금 수정했다.

#xml location은 mappers 패키지 안에 *.xml로 끝나는 모든 파일 적용하는 것으로 설정해주었다.

 

3. build.gradle 코드 한줄 복사

implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16' //쿼리 로그 라이브러리 추가

쿼리 띄우려면 이 쿼리가 필요하다. 이후 해당 프로젝트 우클릭하여 Gradle -> Refresh Gradle을 해준다. 

필요한 jar파일을 모두 가져와 읽어준다.

 

4. spring 로그소스 적용

spring_로그소스.zip
0.00MB

 

해당 로그 소스 알집을 풀어서 

src/main/resources 폴더에 복사 붙여넣기 한다.   이렇게하면 모든 준비가 끝난다.


데이터 베이스를 테스트 해보기 위해 각종 셋팅을 해보았다.

 

1. 데이터베이스에 BOARD 테이블 생성 확인

BOARD 테이블 조회 결과 데이터가 있다.

 

2. mapper 설정

BoardVO에서 클래스 변수들을 만들어 mapper에서 property를 설정하였다. 

서블릿에서는 다른 파일에 가서 매퍼 사용을 허용해주어야 하지만,  위의 application.properties에서 *.xml을 이용해 생략된다.

 

3. service 패키지 설정

BoardService 인터페이스

위 mapper파일에서 지정한 seleict id 값인 selectBoardList를 받아와 BoardService 인터페이스에 메소드를 생성해준다.

 

BoardServiceImple 클래스

위에서 인터페이스 생성을 완료했다면 Impl 클래스로 넘어와 sqlSession을 완료해준다.

서블릿에서는 주석 처리 된 것과 같이 commit() 도하고 객체 생성도 해줘야하지만, 스프링은 필요없다.

 

4. 결합도를 낮추는 IOC, DI 적용

마지막으로 controller 폴더에 Test컨트롤러를 하나 만들어

DI 어노테이션을 사용해 받아온 객체값을 쿼리에 넣고 index .html파일로 이동한다.

 

이렇게 Mybatis를 연동하고 DB까지 연동을 해보았다.

 

Spring에서 가장 중요하다고 볼수있는 결합도를 낮출 수 있는 기능 IOC 와 DI에 대해서도 설명해야하는데,

 IOC와 DI는 어노테이션들을 각 상황에 맞게 사용할 수 있다.

이는 다음 포스팅에서 하려고 한다.

728x90
반응형

댓글