prepare, review/스프링의 정석

MyBatis로 게시판 만들기

thesunset 2022. 12. 17. 17:39

1. MyBatis란? 

: SQL Mapping Framework - Easy & Simple

: 자바 코드로부터 SQL문을 분리해서 관리 

: 매개변수 설정과 쿼리 결과를 읽어주는 코드를 제거 (setString, getInt 등) 

=> 작성할 코드가 줄어서 생산성 향상 & 유지 보수 편리 

 

2-1. BoardDao 작성하기

1)  DB테이블 생성

2) Mapper XML & DTO 작성 

3) DAO 인터페이스 작성

4) DAO 인터페이스 구현 & 테스트

=> 하나를 조회해올 떄는 selectOne, list일 때는 selectList

 

2-2. DTO란? Data Transfer Object

: 계층 간의 데이터를 주고받기 위해 사용되는 객체 

 

DB에서 꺼내서 객체에 담음 (DTO) 

사용자의 요청

** 요청할 때 필요한 내용을 DTO에 담음
@ controller
- 요청과 응답을 처리
- 데이터 유효성 검증
- 실행흐름을 제어
@Service
- 비즈니스 로직 담당
- 트랜잭션 처리
@Repository == DAO
- 순수 Data Access기능
- 조회, 등록, 수정, 삭제
**DB의 내용을 DTO에 담음
DB

2-3) #{}와 ${}의 차이 

#{} => PreparedStatement 이용 ''자동으로

${} => Statement 이용 ''를 직접

 

2-4) XML의 특수문자 처리

XML내의 특수문자(<, >, &, ...)는 &lt;, &gt;로 변환 필요 또는 특수문자가 포함된 쿼리를 <![CDATA[와]]>로 감싼다.