2021. 6. 19. 21:00ㆍSpring
이번에는 Spring 의 myBatis 에 대해서 알아 봅시다.
이 전 포스팅에서, Spring JDBC 를 사용하는 방법을 알아 보았는데요
myBatis 도 DB 에 접근하는 방법으로써, 좀 더 간편합니다.
myBatis
myBatis 개발자가 지정한 SQL, 고급 매핑을 지원하는 프레임워크 입니다.
myBatis 는 기존의 DAO 의 JDBC 코드를 대신 합니다.
myBatis 는 기존의 DAO Interface 를 구현화한 DAOImpl 을 xml 파일로 대신 합니다.
사용하는 방법을 알아 봅시다.
1. maven 을 통한 myBatis , myBatis-spring 다운로드
"pom.xml" 파일로 이동해서, 아래의 코드를 추가한 뒤에, Maven Update 를 진행 합니다.
※ 버전은 "maven repository" 에서 찾아서 사용합니다. ( 사용률이 높은 ? )
2. 외부 설정 파일 ( root-context.xml ) 설정
"root-context.xml" 파일로 이동해서 아래의 설정 및 코드를 추가 합니다.
위 부분의 ref 는 이 전 포스팅에서 만들어 놓은 Connection Pool 입니다. ( Spring JDBC 할 때 만들어 놓음 )
3. 위에 연결한 패키지를 만들고, 아래에 Interface 생성, Interface는 @Mapper 로 연결
4. resources 폴더 아래에, Interface 이름과 똑같은 "xml" 만들기.
5. resources 폴더 아래에, myBatis 설정 파일 만들기
6. 외부 설정 파일 (root-context.xml) 2번 에서 만든 myBatis 에 위에서 만든 4,5번 추가
※ "classpath:/" 를 사용하면, "src/main/resources/" 폴더 라는 의미, * 는 이름상관 없이 아무거나 라는 뜻을 가지고 있습니다.
※ mybatis-config.xml 파일에 아무것도 적지 않으면 파일을 찾을 수 없습니다. (configuration 열고 닫고 라도 해주세요)
7. 3번에서 만든 Interface 와, 4번에서 만든 xml 파일 매핑 시키기
위에서 만든 BoardMapper(Interface) 를 BoardMapper.xml 에 매핑시켜 줍니다. 아래는 "BoardMapper.xml" 파일
<mapper> 를 사용하는데, namespace 에는 Interface 의 경로를 넣어주면 됩니다.
8. <mapper> 태그 사이에 sql 문 작성
각각 실행하는 SQL 문을 태그로 묶어 줍니다. insert -> <insert> / select -> <select> ....
id 에는, interface에 있는 메서드의 이름을 넣어 줍니다.
select문 같이 반환타입이 필요한 경우에는 resultType 을 사용합니다.
resultType 에는 Model ( BoardVO 의 위치를 풀로 넣어 주어야 합니다 )
※ 아래의 resultType 에 BoardVO 만 써져있는 이유는 5번에서 설정한 typeAlias 의 효과 입니다.
mapper.xml 에서 sql 문을 사용할 때, 넣어줘야 하는 변수는 "#{변수명}" 을 사용합니다
위의 1 ~7 번으로 설정을 완료 했다면, Interface 부분과 xml 부분에 추가하고 싶은 메서드 및 sql 문을 사용하면 됩니다 ~
※ 3 ~ 7 번의 순서는 다르게 해도 상관 없지만, 외부 설정 파일(root-context.xml) 에 코드 추가를 잊지 마세요
'Spring' 카테고리의 다른 글
Day88 - [Spring]타일즈 뷰 템플릿(Tiles View Template) (0) | 2021.06.22 |
---|---|
Day88 - [Spring]롬복(Lombok) 설치 및 사용법 (0) | 2021.06.21 |
Day86 - [Spring]Spring JDBC (0) | 2021.06.18 |
Day86 - [Spring]Spring Tool Suite 3 다운로드 (0) | 2021.06.18 |
Day85 - [Spring]Service, Model 부분 만들기 (0) | 2021.06.16 |