DTO를 매개변수로 보낼 때
복수개의 DTO를 보낼때에는 Map에 키값을 달아서 전달 한다.
Map 방식 외의 방법으로 전달하는 법
ㅡ mybatis multiple parameter : @Mapper @Param
DTO 필드명과 데이터베이스 컬럼 이름이 다른 경우
테이블에서는 name, DTO에서는 writer 라면
resultMap 태그로 mapping 정보를 만들어준다.
생략된 컬럼은 자동 mapping
동적 쿼리
상세 검색
selectOne과 selectAll 통합 select
if 조건이 true일 경우에만
Mapper의 쿼리가 동적으로 동작 하는 경우
어떻게 매개변수 존재를 구분해서 호출할 것인가?
컨트롤러 서비스 dao에
매개변수 seq를 무조건 넣어주자
- seq를 입력한 경우 정상동작
- seq 값이 없는 경우 에러 발생
int seq 대신에 검색전용DTO를 매개변수로 전달
'' 값 없음의 경우 null을 integer 할수 없으므로 받을 수 없음
Integer 로 받으면 null도 받을 수 있다.
기본자료형을 둘러싸는 자료형
Wrapper Class
검색용으로는 dto로 받는 것이 적합
검색용도 dto라면 필드 자료형 int말고 Integer로 변경
wrapper class는 자동으로 형변환 된다
첫글자 대문자 -> 클래스로 만들어짐
Auto Boxing 으로 인해 getter setter 말고는 따로 코드를 수정해줄 필요없음
// Auto Boxing
Integer i = 10;
Integer i = new Integer(10);
Object o = 10;
integer 는 값이 없을 시 null로 전달
String은 값이 없을 시 ''로 전달
-> 전달되는 값에 맞추어 조건을 설정해야 한다.
조건이 여러개일 경우
seq name 둘다 비어있을 경우 전체 목록
둘중 하나만 비어있을 경우 조건 검색
둘다 존재할 경우 where 이 두번?
trim 태그
trim태그 inner 영역에 어떠한 값이든 존재한다면 앞에 where을 붙인다.
prefixOverrides : 발생한 텍스트의 접두사를 삭제
생성된 구문의 가장 앞이 "and"라면 오버라이드 (지워버림)
'디지털 컨버전스 > Spring' 카테고리의 다른 글
[Spring Framework] AOP (0) | 2020.06.10 |
---|---|
[Spring Framework] Scheduler (0) | 2020.06.10 |
[Spring Framework] MyBatis - update (0) | 2020.06.09 |
[Spring Framework] MyBatis - select (0) | 2020.06.09 |
[Spring Framework] MyBatis 에러 (0) | 2020.06.09 |