상세 컨텐츠

본문 제목

76일 - MyBatis를 활용한 DB 연결(2), Dao 구현하기 실습

수업 일지/Spring

by NayC 2021. 6. 8. 14:35

본문

728x90

detail 페이지 수정하기

지금은 하드코딩 상태
원본
list.jsp에서 detail.jsp로 id를 넘겨주니까 / 아래 NoticeController에서 id를 받으면 됨
detail 추가한 거

흐름 '숙달'하기! 

 

//


detail 페이지에서 '삭제'하기

 

id 받고, 삭제한 다음에 redirec 해서 목록으로 가기

 

// 먼저 삭제했는지를 알아보기 위해 아래와같이 정렬해주고

// 

delete 한 거

22번째줄에 parameterType 안쓰는 이유 

-> 기본 타입은 안써줘도 된다. (기본 타입은 parameterType="int")

 

파라미터 타입 vs resultType 

select에서는 '값을 만들어내는거에 대한 데이터'를 어느 타입으로 하겠느냐에 대한거라 파라미터 타입은 필요 x

 

select 구문만 resultType만 있는 것

insert, delete 같은건 parameterType이 중요


DAO를 여러개 만들어야 함

- 테이블마다 필요함

 

이렇게 해줌으로서 
아래 28번째줄 겹치는 것들을 삭제해주자.

// update를 구현해보자.

update 해준거

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

근데 조건 들어가야지

17번째줄에 parameterType 쓰고 이렇게 해줄 것 같지만 아님

근데 이렇게 하면 적용이 안 됨

인식을 못한다고 함

 

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를 준비해서 만들기.

그리고 내일 테스트하기. 

 

728x90
반응형

관련글 더보기