반응형
1. MyBatis란
- 자바코드 <- -> SQL( XML )
- SQL Mapping Framework
- 자바 코드로부터 SQL문을 분리해서 관리
- 매개변수 설정과 쿼리 결과를 읽어오는 코드를 제거
- 작성할 코드가 줄어서 생산성 향상 & 유지 보수 편리
2. SqlSessionFactoryBean과 SqlSessionTemplate
- SqlSessionFactory - SqlSession을 생성해서 제공
- SqlSession - SQL 명령을 수행하는데 필요한 메서드 제공
- SqlSessionFactoryBean - SqlSessionFactory를 Spring에서 사용하기 위한 빈
- SqlSessionTempleate - SQL 명령을 수행하는데 필요한 메서드 제공. thread-safe
3. SqlSession의 주요 메서드
메서드 | 설명 |
int insert(String statement) int insert(String statement, Object parameter) |
insert문을 실행하고, insert된 행의 갯수를 반환 |
int delete(String statement) int delete(String statement, Object parameter) |
delete문을 실행하고, delete된 행의 갯수를 반환 |
int update(String statement) int update(String statement, Object parameter) |
update문을 실행하고, update된 행의 갯수를 반환 |
T selectOne(String statement) T selectOne(String statement, Object parameter) |
하나의 행을 반환하는 select에 사용 paramter로 SQL에 binding될 값 제공 |
List selectList(String statement) List selectList(String statement, Object parameter) |
여러 행을 반환하는 select에 사용 paramter로 SQL에 binding될 값 제공 |
Map selectMap(String statement, String keyCol) Map selectMap(String statement, String keyCol, Object parameter) |
여러 행을 반환하는 select에 사용 keyCol에 Map의 Key로 사용할 컬럼 지정 |
Dao 작성
1. DB 테이블 생성
2. Mapper XML & DTO 작성
3. DAO 인터페이스 작성
4. DAO 인터페이스 구현 & 테스트
DTO란 ( Data Transfer Object )
- 계층간의 데이터를 주고 받기 위해 사용되는 객체
실습
Mybatis #{}, ${} 차이
- #{} - PreparedStatement 사용 / SQL Injection 방지
- ${} - Statement 사용
XML의 특수 문자 처리
- XML내의 특수문자( <, >, &, ...) 는 < >로 변환 필요
또는 특수문자가 포함된 쿼리를 <![CDATA[와]]> 로 감싼다
반응형
'Spring' 카테고리의 다른 글
[스프링의 정석] RestAPI, Ajax (0) | 2023.04.26 |
---|---|
[스프링의 정석] 게시판 페이징 삽질 (0) | 2023.04.25 |
[스프링의 정석] Transactional (0) | 2023.04.24 |
[스프링의 정석] AOP의 개념과 용어 (0) | 2023.04.21 |
[스프링의 정석] Transaction, Commit, Rollback (0) | 2023.04.21 |