The Debugging Chronicles : "코드의 미학"
[Mybatis] sql-map-config.xml과 board-mapping.xml 본문
**ORM 플러그인
; DB 로직 파트를 자동화 시키려는 목적으로 설정을 추가함
- 코드 모음집 == 플러그인
- Object Relational Mapping
- (객체 지향 프로그래밍) <-> 관계형 데이터베이스 관리 시스템
- 객체 (DTO ,VO) <-> 테이블,SQL 구문 및 그 결과
"마이바티스" 라는 프레임워크를 이 프로젝트에 추가 시킨 상황이다.
또 다른 일하는 주체를 들여왔기 때문에 마이바티스를 위한 설정 파일이 필요하다.
"sql-map-config.xml" 이 추가 되어야한다
로직 자동화를 위해 추가한 것이다.
추가해야하는 곳 위치!
설정 파일로 만들어야한다.
applicationContext.xml 과 같은 라인에 있어야 한다.
configuration 이라는 루트 엘리먼트 안에, 가장 최상이 요소 안에 두가지 설정이 있다.
자료형의 이름을 정하는 설정
mapper 설정 알려주는 설정이 들어가있다.
좀 더 자세히 살펴보자
BoardDTO를 board로 별칭 짓겠다는 이야기이다.
ORM에서는 board라고 부르겠다는 뜻이다.
이와 같은 것이 RowMapper이다.
rowMapper에서는 ResultSet이 BoardDTO에 들어가어야해라는 뜻이다
mappers 안에는 mapper들이 들어가야한다.
Board 맵핑은 board-mapping.xml에
member 맵핑은 member-mapping.xml에 연결되어야한다.
어떤 SQL구문이 어디에 들어가있는지 알려주는 것이다.
BoardDAO(자바)에서 완전히 빠져나와서
board-mapping.xml으로 분리된다.
JAVA 코드에서 제거한 SQL 구문들이 xxx.xml 파일에 있다라는 뜻이다.
이렇게 분리된 파일은
결합도가 낮아지고 응집도가 높아지고 유지보수가 용이해진다.
만들때는
MyBatis Xml Mapper로 만든다.
자바에서는 파라미터를 받기 위해서 ? 를 사용하는데
XML에서는
ORM 마이바티스에서 파라미터를 받기 위해 #{} 을 사용한다.
안에는 객체 이름, 멤버변수 이름을 써주면 된다.
근데 이 파라미터가 어떤 객체꺼인지 알아야한다.
그래서 resultType 이라는게 필요한데
근데 원래는 이렇게 써야한다.
그래서 별칭 설정을 해준다.
별칭 설정은 필수는 아니지만
가독성을 높일 수 있다.
ResultType은 결과 가 나오는 SQL문에 올리고
필요가 없는 SQL문은, 즉 결과값이 1,0인 경우에는 쓰지 않아도 된다.
모든 태그들은 ID라는 것을 갖는데
이 id는 SQL 문의 이름이었다.
다음으로 알아야할 것은 namesapce이다.
메모리칸에 이름을 정하는 행위이다.
xml 파일에 이름을 정해주는 행위이다.
만약에 이름이 정해져있지 않다면
다른 xml과 구분 짓을 수 없다.
'Mybatis' 카테고리의 다른 글
[Mybatis] 마이바티스와 연결되어 있는 BoardDAO 만들기 (0) | 2024.11.05 |
---|---|
[Mybatis] 마이바티스 설치 (1) | 2024.11.05 |