detail 페이지 수정하기
흐름 '숙달'하기!
//
detail 페이지에서 '삭제'하기
id 받고, 삭제한 다음에 redirec 해서 목록으로 가기
// 먼저 삭제했는지를 알아보기 위해 아래와같이 정렬해주고
//
22번째줄에 parameterType 안쓰는 이유
-> 기본 타입은 안써줘도 된다. (기본 타입은 parameterType="int")
파라미터 타입 vs resultType
select에서는 '값을 만들어내는거에 대한 데이터'를 어느 타입으로 하겠느냐에 대한거라 파라미터 타입은 필요 x
select 구문만 resultType만 있는 것
insert, delete 같은건 parameterType이 중요
DAO를 여러개 만들어야 함
- 테이블마다 필요함
// update를 구현해보자.
// getCount 구현하기
Q. 왜 NoticeDao에 getCount를 넣어줄까?
- NoticeDao에 있는걸 가지고 Service에서 getCount를 얻어낼 수 있을까?를 생각하면 됨.
NoticeDao
int getCount(String field, String query);
MyBatisNoticeDao
public int getCount(String field, String query){
return mapper.getCount(field, query);
}
NoticeDaoMapper
근데 조건 들어가야지
근데 이렇게 하면 적용이 안 됨
인식을 못한다고 함
select에는 parameterType을 넣어주지 않는다.
->
select에 들어가는 parameter는 이렇게 해준다!!!
// view 사용
Dao 통해서 data 받을 때는 컬럼 추가된 것들 받을 때가 있는데
추가적인 컬럼이 있을 경우에
컬럼이 추가될 때마다 이렇게 만드는
//
NoticeDao
List<NoticeView> getViewList (int page, String field, String query);
MyBatisNoticeDao
public List<NoticeView> getViewList (int page, String field, String query){
return mapper.getViewList(page, field, query);
}
NoticeDaoMapper
-> param2, param3 여야함 (page는 빼야하니)
-> MyBatis 고급 기능 사용할 준비 완료
쿼리를 동적으로 추가해야할 필요가 있다.
// commentDao추가해서 NoticeDao를 복붙
<Notice> -> <Comment>로만
이걸 구현하기만 하면 됨
구현체
MyBatis..
mapper 만들기
CommentDao.xml
// 그리고 이름들 Notice -> Comment로 바꾸기
// 이렇게 테이블마다! 해야함
본인 프로젝트에서 각각 Dao를 준비해서 만들기.
그리고 내일 테스트하기.
77일 - update 할 때의 <set>, 래퍼클래스로의 변환, 파일만 주는 테이블에 id 주기 intro (1) | 2021.06.09 |
---|---|
77일 - 테이블명을 맞춰주는 <resultMap>, 페이징(Limit * Offset *), 동적 쿼리, <where> (0) | 2021.06.09 |
76일 - MyBatis를 활용한 DB 연결(1) (0) | 2021.06.08 |
75일 - DI, @Autowired로 결합하는 과정 (0) | 2021.06.07 |
75일 - MySQL 다운, NoticeDao, NoticeService(비즈니스 로직) 인터페이스 생성, DI 개념 (0) | 2021.06.07 |