middlemoon

Spring + Mybatis 연동예제1 본문

Develop/Springboot

Spring + Mybatis 연동예제1

중대경 2022. 8. 22. 14:32

mysql-connectior-javaxx.jar

mybatisxxxx.jar 라이브러리

 

spring mybatis 연동 라이브러리

mybatis-springxxx.jar

spring-jdbcxxxx.jar

 

 

 

 

 

spring jdbc 라이브러리 설치하기 위해서 pom.xml 을 안에 넣어준다.

 

mybatis - spring 또한 pom.xml안에 넣어준다.

 

실제 확인을 하려면 Maven Dependencies에서 각각의 다운로드 한 파일을 확인해본다.

 

 

새롭게 프로젝트를 생성한다.

혹시 기존의 있던 프로젝트에서 옮겼다면 패키지명이 모두 바뀌므로 type을 새로설정해줘야만 한다.

 

 

타입부분을 mybatis.MemberDTO -> spring.mybatis.MemberDTO로 변경해준다

 

MemberServiceimpl에서는 @Service 어노테이션, DAO에서는 @Repository 어노테이션을 추가설정해준다.

 

 

setter 멤버를 대신역할해주는 @Autwired

public void setDao(MemberDAO dao) {

this.dao = dao;

 

이 역할이다.

 

 

 

 

 

Spring Bean을 인식시켜야하기 위해서 Context를 만든다.//annotation 인식패키지

 

 

 

 

 

 

 

bean 설정을 해주기 위한 공간

이 부분은 Main쪽에 mybatis을 실행하려면

ApplicationContext factory = 

new ClassPathXmlApplicationContext("spring/mybatis/spring-mybatis.xml");

 

 

 

 

 

만들었던 부분을 저 위쪽 bean에 따로 설정을 해주어야한다. 

모든 bean에 설정있는 세팅을 맞췄고, id=dataSource를 진행한 이유는 mybatis에 접속하기 위해 db서버가 하나로 필요로하게 되는데

쉽게말해 데이터서버를 접속할수 있도록 하는 작업을 맞친것이라고 보면된다. 저 부분에서 하나라도 빠지면 sql 세션이 실행이 안되니

처음 실행이 까다롭더라도 이런식으로 세팅해주는것이 중요하다.

 

 

 

 

 

mybatis - config.xml 부분의 저 부분도 삭제

 

이 부분도 삭제

 

이제 아까 만들어놓았던 spring-mybatis가 주축으로 움직인다.

 

 

 

결과적으로 SpringMain에서 service를 찾아내면  ServiceImpl 에서 service를 찾아낸후 Autowired로 setter부분의 역할을 대신하여

 

MemberDAO를 호출한 serivceImpl이 내가 실행하고자 하는 함수에 실행되서 (이때 sql쿼리를불러옴)

 

내가 원하는 memberlist를 통해 결과값이 나오는것을 확인할수 있다.

지끔까지 Spring과 mybatis 를 연동한 기본적인 예제에 대해서 공부해보았다.

Comments