개발/Spring

[Spring] Spring mybatis 연동하기

hojak99 2017. 8. 16. 13:36

스프링 프로젝트를 생성했다고 가정하여 작성하겠다. 그리고 필자는 MySQL 를 사용했고 DB를 생성해주자.


스프링 프로젝트를 생성하면 다음과 같은 구조로 생성이 돼 있을 것이다.


[사진 1: 스프링 프로젝트 구조]




mybatis 를 사용하기 위해 maven dependency 를 추가해주어야 한다. pom.xml 에 다음에 내용을 추가해주자.


[사진 2: maven dependency 추가 (pom.xml)]




maven build 를 해준 뒤 [WEB-INF/spring/root-context.xml] 파일로 이동한다.


이제 root-context.xml 파일에 mysql 접속정보와 sqlSession, sqlSession 을 관리하는 sqlSessionFactory, 트랜잭션을 관리하는 transactionManager 를 추가한다.



[사진 3: root-context.xml 파일]



url 부분에 value 값은 자신의 MySQL 서버 포트와 DB 이름을 적어주면 된다.


여기서 sqlSessionFactory 의 configuration 의 value 값에 classpath: ~ 는 [src/main/resources] 경로를 가리킨다. 


그렇기 때문에 [src/main/resources] 폴더에 mybatis-config.xml 파일을 생성해주고 다음과 같이 mapper 를 설정해준다.



[사진 4: mybatis-config.xml 파일]




그리고 다시 [src/main/resources] 폴더에 mapper-test.xml 파일을 생성해주기 전에 

DTO 인 Data Transfer Object 클래스를 생성해주자. 이 클래스는 Mapper 에 사용될 예정이다.


이 클래스로 insert, select, delete 를 할 수 있다. 



[사진 5: TestDTO 클래스]



DTO 클래스를 만들었다. 여기서 getter/setter 를 생성하기 귀찮으므로 이클립스 단축키인 Alt+Shift+S -> R 을 눌러주면 getter/setter 를 생성해준다.



그리고 Mapper 클래스도 만들어줘야 하지만 그 전에 위에서 생성하려고 했던 mapper-test.xml 파일을 생성해준다.


이 파일에는 SELECT, INSERT 에 관한 커리가 들어간다.



[사진 6: mapper-test.xml 파일]



우선 이 다음에 생성할 예정인 TestMapper 클래스를 패키지 명과 같이 namespace 에 설정해준다. 그리고 resultMap 에 타입으로 반환 될 클래스를 설정해주고 select 와 insert 를 위와 같이 각각 설정해주는데 이 때 select 를 사용할 때는 List<type> 으로 반환된다.




이제 TestMapper 클래스를 생성해주자.


[사진 7: TestMapper 클래스]



위와 같이 생성한 TestMapper 클래스는 sqlSession 로 꺼내서 사용할 수 있다. 아래 코드에서 확인해보자..


[사진 8: HomeController 클래스]



다음과 같이 사용할 수 있다..






도움 주신 분 : 박스여우 

고마웡 ㅠㅠ


반응형