* 52. Mybatis SQL Mapper FramWork
문제점 ?
SQL과 자바코드를 같이 사용할 때
① 코드 관리가 어렵다
② JDBC API 호출 코드가 반복된다
해결 !
JDBC API 호출을 캡슐화하여 자바코드와 SQL 코드를 사용한다.
자바 코드와 SQL 코드를 별도 파일로 분리하기 때문에
코드 관리가 쉽고 캡슐화로 자바 프로그램이 간결해진다.
* Markup 과 XML
Markup ?
Markup언어는 일반적으로 문서의 구조와 형식을 표현하는 언어이다.
XML ?
XML은 특정 목적에 맞게 데이터를 구조화하고 표현하기 위한 특정한 Markup 언어이다.
XML은 매우 유연하고 확장 가능한 데이터 형식으로 다양한 분야에서 데이터의 구조를 정의하고 사용한다.
ㄴ Extensible Markup Lanaguage (Content를 제어,설명하며 Markup 제어 명령을 추가하는 기술)
* XML 문서 작성 규칙
<!DOCTYPE> 루트태그 규칙정의 "국제표준여부//조직명//규칙명+버전//문법언어"
<부모태그>
<자식태그> <콘텐트> <끝태그>
<>속성<>
</부모태그>
필드명이 아닌 Board의 property 이름을 넣어야한다.
즉, getContent가 반환하는 content를 xml에 #{content}로 추가하는 것이다.
나머지 모든 values를 추가해주되,
이제는 Member의 로그인 정보를 받아 실행되기 때문에
Board 게시판에서는 글의 password 값을 받을 필요가 없어서 제거해준다.
MyBatis에서는 필드명과 컬럼명이 서로 다를 경우,
매퍼 파일에서 결과 매핑을 위해 컬럼명과 필드명 간의 대응 관계를 설정해줄 수 있다.
데이터베이스의 컬럼명과 자바 객체의 필드명이 일치하지 않아도 정상적으로 결과를 매핑할 수 있다.
resultMap을 사용하여 필드명과 컬럼명을 명시적으로 지정할 수 있다.
이를 통해 MyBatis는 쿼리 결과와 자바 객체 간의 필드 매핑을 정확하게 수행할 수 있다.