티스토리 뷰
본래 java 서버와 DB의 연동에서 jdbcTemplate 를 사용했다..
1,2,3,4,5 일련의 코드 과정을 거쳐서,,,
마이바티스는 이 과정을 쿼리만 작성하면 모두 자동으로 동작시켜 준다.
마이바티스 프레임워크는 jdbcTemplate 같이 반복되는 과정을 정리해 놓은 것처럼 이를 정리해 놓은 프레임 워크 이다.
**프레임워크라는 것은 어떠한 공통적은 코드의 부분을 모두 자동으로 동작하도록 짜 놓은 것을 말한다. 일종의 반복되는 코드 과정을 정리해 놓은 구조, 틀 이라고 할 수 있다.
**iBatis 는 마이바티스의 조상 뻘 이다. 1 -> 2 -> 3 버전을 거쳐오다가 마이바티스라는 이름으로 바뀌었다.
**ORM(Object-relational mapping)
마이바티스 소개글~
https://mybatis.org/mybatis-3/ko/index.html
https://mybatis.org/mybatis-3/ko/getting-started.html
다음 실습 과정은 위 링크에 나와있는 내용을 기반으로 한다!! 이 내용보다 소개글을 보시는게 좋을수도,,,ㅎㅎ 설명이 잘나와있는것 같다!!
시작하기 - MyBatis 사용하려면~~
마이바티스를 사용하기 위해 mybatis-x.x.x.jar 파일을 클래스패스에 두어야 한다.
mybatis-3.5.3.zip 다운로드~~
다운로드 받으면 사이트의 내용을 pdf로 정리해 놓은 파일이 존재한다.
이거는 번역판입니당~
프로젝트 시작하기!
프로젝트는 workspace_web 의 jsp01_myboard 를 복붙 해서 사용합니다!!
jsp01_myboard_mybatis 라는 이름으로!!
이 과정에서 바뀔것은 JDBCTemplate 를 사용하지 않고!! Dao가 수정된다!!
일단 프로젝트를 복사 붙여넣기 하고!!
mybatis-3.5.3.jar 파일을 WebContent - WEB_INF - lib 에 붙여넣기 해준다!!
프로젝트는 jdbcTemplate를 일단 지운 상태이다!!
** 참고로 프로젝트를 실행할때 복붙한 상태에서는 contextRoot가 같기때문에 jsp01_myboard_mybatis를 제외한 모든 프로젝트는 removeAll 하고 실행해 주어야 한다!!
빨간줄 없애려면 dao 의 내용을 모두 비워주면 된다!! 어차피 dao 의 모든 메서드는 모두 mybatis 를 이용한 방식으로 바뀔 것이기 때문에!! 메서드 틀만 냄겨놓고 다 지운다!!!
이렇게 말이다!! ㅎㅎㅎㅎㅎㅎ
마이바티스를 실제 사용하려면 그림 위의 세줄 코드를 복사 붙여넣기한다.
16줄에 resource는 수정되었따!! 이 링크는 우리가 직접 xml 파일을 만들어줄 것이다!!
import는 코드 import를 참조한다!! 엉뚱한 것을 import 하면 안되기 때문에 잘 보시길 바란다!! ㅎㅎ
이제 com.my.db 패키지에 mybatis-config.xml 파일을 만들어 홈페이지의 xml 소스를붙여넣는다.
이 xml 은 jdbc 에서 드라이버 연결, 계정연결 설정과 같은 역할을 하는 코드이다.!!
다음은 일반 file 을 com.my.db 패키지에 만든다. 이름은 db.properties 이다..
**참고로 properties는 map 의 구조를 가진 Collection 중 하나이다... 키와 밸류가 스트링 타입인 Map 이라 생각하면 된다!!
다음은 mybatis-config.xml 로 가서 이 properies 를 사용하겟다는 코드를 추가한다!! 7번째 줄!!
21줄에 mapper 요소 또한 수정되었다!!
이제 얼추 환경설정이 다 끝나간다~~
dao 에 코드는 이렇게 적용된다.
28줄에 맵핑은 다음 코드와 연결된다.
com.my.db 패키지에 mybatis-mapper.xml 을 만들어준다.
이 맵핑은 mybatis-mapper.xml 의 mapper namespace 와 연결된다!!
문제없이 코드를 적용했다면 다음과 같이 리스트가 잘 나오는걸 확인할 수 있따!!
정리하자면
기존 코드에서 수정 적용된 부분은 다음과 같다.
- lib 에 mybatis-3.5.3.jar 파일 추가하기
- JDBCTemplate 없애기!!
- com.my.db 패키지에 xml 밑 일반 file 추가하여 환경설정하기!
- dao 수정하기
https://mybatis.org/mybatis-3/ko/configuration.html#
매퍼설정도 잘 공부하시길 바란다~
매퍼설정의 내용 중 typeAlias 에 대한 부분은 다음과 같이 적용시켜 보았다!!
https://mybatis.org/mybatis-3/ko/sqlmap-xml.html
마이바티스의 가장 큰 장점은 매핑구문이다. 이건 간혹 마법을 부리는 것처럼 보일 수 있다. SQL Map XML 파일은 상대적으로 간단하다. 더군다나 동일한 기능의 JDBC 코드와 비교하면 아마도 95% 이상 코드수가 감소하기도 한다. 마이바티스는 SQL을 작성하는데 집중하도록 만들어졌다.
소개글에 이렇게 나올정도로 자랑스러워하는것같다!! 이게 마이바티스의 말하자면 꽃 이다!! 꽃!!(flower)
이것도 신기한거 같다!!
신기해서 해보려고한다..ㅎㅎ
DAO 에서 selectOne 메서드에 적용시켜 보겠다!!
드래그 선택한 부분을 보면 selectOne 에 맵핑과 함께 파라미터를 하나 보낸걸 볼 수 있다..
mapper 에서는 다음과 같이 파라미터 값을 받는다 #{MYNO} 라고,,, 아주 신기하다,,,
프로젝트를 실행해서 제목을 눌러보면 selectOne 메서드를 타고 들어가 글의 내용이 잘 보이는걸 볼 수 있다.. 대단쓰...
이제 api document 를 보고 나머지 insert update delete도 만들어 보겠다.. 어휴 귀찮,,,
https://mybatis.org/mybatis-3/ko/apidocs/index.html
DB의 컬럼명과 JAVA의 DTO(VO) 의 필드명이 다를 경우!!????
mapper에서 resultMap 을 통해 컬럼과 필드를 매칭해 줄 수 있다!!
뭐 어차피 컬럼명이랑 dto 필드명을 똑같이 맞춰놔서 문제는 없었지만 테스트용으로 한번 해보았다.
만들어진 myMap 이라는 resultMap 은 select 태그에 selectList 에서 적용시켜 보았다.
다음 시간에는 jsp02_multidelete 도 jsp02_multidelete_mybatis로 만들어보겠다!!
'DB > MyBatis' 카테고리의 다른 글
MyBatis XML Files ,,, DTD 파일 설정 (0) | 2020.02.02 |
---|---|
MyBatis multiQuery 실습 해보기 (0) | 2020.02.01 |
- Total
- Today
- Yesterday
- 추상화
- ojdbc6.jar
- 객체
- INSERT
- view
- JdbcTemplate
- OOP
- model
- controller
- MVC
- Delete
- 캡슐화
- Scott/Tiger
- Update
- 상속
- Oracle
- java 환경설정
- jdbc
- java
- select
- 다형성
- .
- 객체지향
- JDBC 프로그램 작성단계
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |