본문 바로가기
FreamWork/Spring

2018.05.26 스프링개발 - (3) Mybatis 연결

by 신코딩 2018. 5. 26.

저번에 이어서 오늘은 DB연결 즉 정말 유용한 Mybatis연결을 하겠습니다.


web.xml에서 appservlet의 구성


<param-value>를 보시면 classpath를 이용해서 application*.xml 명시했습니다. 

즉 저는 appservlet을 2개를 만든셈이죠~~




다음은 pom.xml 에서 mybatis DI를 해주어야 합니다!!

DB를 mysql을 쓰신다면 아래 항목을 추가해주시고 ojdbc를 빼주세요

----------------------------------------------------------------

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>1.3.0</version>

</dependency>

----------------------------------------------------------------


주의!!  오라클은 아래한개더 추가해주셔야 합니다!!!

Maven Dependencies 항목에서 아래처럼 추가가 됐다면 이상없이 다운받아진것이다.





이제 application-context.xml 돌아와서 본격적으로 DB연결을 시작하겠습니다


①. 아래처럼 DB에서 사용하는 user name를 정의 시켜주세요 



②. 다음은 Mybatis와 스프링 연동작업에서의 핵심은 Connection을 생성하고 처리하는 

SqlSessionFactory 입니다.  


<property name="configLocation ">

자바는 자동으로 리소스를 찾기 위한 좋은방법을 제공하지 않는다.  그래서 어디서 찾으라는 것을 명시 해주어야 한다.

그래서 필자는 XML파일을 만들어 따로 관리를 해주었다. 파일명( mybatis-config.xml )



필자는 위와 같이 Mapper XML 파일을 정의했다.( 실제로 사용되는 SQL파일 경로이다 )



 Mapper XML 파일

Mybatis를 처음사용하시면은 신세계일 것이다!!  기존에는  String sql ="SELECT * FROM test" 하면서 반복문돌리며 뽑아서 그걸 다시 객체로 반환시켰을텐데   Mybatis는 <select>태그 안에 원하는 쿼리문을 넣어주면 끝이다!!!! 



Namespaces     는 이전버전에서는 사실 선택사항이었다. 하지만 이제는 패키지경로를 포함한 전체 이름을 가진 구문을 구분하기 위해 필수로 사용해야 한다. (DAO 패키지 경로를 넣어주면 된다)

resultType         는 SQL을 조회한 결과의 return 타입을 정해주는 것이다.

parameterType 는 매개변수로 넣어오는 값을 정해주는 것이다.




다음은 DAO 화면이다


필자는 DAO 구조를 다르게 한것이다 

service, mapper, DAO 3단구조로 나누워서 해도 되지만 필자처럼 DAO 하나로 걸쳐서 하는 방법도 있다. 

꼭 뭐가 답이 정해져있지는 않으나 대체적으로 3단구조로 많이 한다.


우선 @Component 어노테이션을 통해 빈을 등록 하였고  @Autowired를 통해 의존성 주입을 해주었다.

getLists메소드를 보면 MapperXML 파일에서 select id='getLists'와 동일한것을 볼수 있다. 이름을 동일하게 해주어야 한다는것이다!!




마지막으로 필자의 파일의 경로이다

이상으로 Mybatis 연결을 완성했습니다