실제 트랜잭션의 대상이 되는것은 servlet-context에서 관리하는 bean
-> service (boardService)이기때문에 전역에 설정된 빈을 servlet-context에서 가져와서 사용함
Exception만들기
패키지 설정 > 상속클래스 설정 - RuntimeException > 생성자 Generate Constructor
여러개를 한번에 insert할 때 한 개는 성공하고 한 개는 실패하면 둘 다 실패되도록 처리가 됨(@Transactional)
부모자식 참조 관계가 있는 테이블을 한 방에 쿼리로 가져오는 기능 제공
(짧은 쿼리를 여러번 날리는게 안좋은건 아님. 오히려 좋은방법일 수 있음. 내가 선택하는 것임!)
collection 1:N관계 (보드 한행당 첨부파일은 여러개일 수 있음. 요거 써야함)
association 1:1관계
>1.Board : boardService.selectOneBoard(no);
2.List<Attachment> : boardService.selectAttachList(no);
요렇게 두개를 날려도 좋고
>Board board = boardService.selectOneBoardCollection(no);
요렇게 하나만 해도 됨
boolean을 char타입으로 char타입을 boolean으로 바꿀 수 없어서 typeHandler 직접 만들어 사용하기
넘버타입으로 세팅하고 1,0을 넣으면 jdbc기본 api중에 이걸 setBoolean, getBoolean해서 사용 가능
(boolean이라는 타입이 jdbc에 없어서)
jdbc에서 1을 true넣어주고, 0을 false넣어서 사용
그러나 1,0으로 돌리기에 늦었다면 typeHandler 만들어서 사용하면 됨!
typeHandler 만들기
>TypeHandler Class생성 > Finish >extends BaseTypeHandler<Boolean> > Add unimplementes methods
값이 null이면 메소드 호출을 아예 안해서 setNonNullParameter이런식으로 이름이 붙음
필요한 메소드 alias 등록하는 방법
mybatis-config.xml > <typeAliases> 찾아서 packge등록해놓기(?)
alias로 등록된 typeHandler 사용법
maaper.xml에서
>
<result column="status" property="status" typeHandler="yesNoBooleanTypeHandler" javaType="boolean" jdbcType="VARCHAR"/>
'프로그래밍 > Spring' 카테고리의 다른 글
11.02(파일 다운받기, ajax, jsonView 관련 의존) (0) | 2020.11.02 |
---|---|
10.30(PSA) (0) | 2020.10.30 |
10.28(MultipartFile) (0) | 2020.10.28 |
10.27(LoginInterceptor, MultipartFile ) (0) | 2020.10.27 |
10.26(RequestParam, Pointcut, rowbounds, formatDate) (0) | 2020.10.26 |