본문 바로가기
공부/java & Spring

[왕왕왕초보 Spring 실습] 3. controller, vo, service, dao 작성

by 고기 2022. 7. 17.

작성순서

0. 참고

1. food 패키지 생성

2. controller 작성

3. vo 작성

4. service 작성

5. dao 작성


 

0. 참고

https://1545154.tistory.com/71

 

[왕왕왕초보 Spring 실습] 5. 실습 코드 참고

작성순서 1. foodController.java 2. foodDao.java 3. foodDaoMyBatis.java 4. foodService.java 5. foodServiceImpl.java 6. foodVO.java 7. mybatis-config.xml 8. sqlmap-board.xml 9. servlet-context.xml 10...

1545154.tistory.com

 

 

https://1545154.tistory.com/68

 

[왕왕왕초보 Spring 실습] 2. 스프링 mvc 프로젝트 생성

작성순서 1. 이클립스, 톰캣 세팅 2. 프로젝트 생성 3. 톰캣 서버 등록 1. 이클립스, 톰캣 세팅 " An error has occurred. See error log for more details. Could not initialize class com.thoughtwork..

1545154.tistory.com

 

이전 글에서 프로젝트 만드는 것까지 진행했었다.

 

1. food 패키지 생성

먼저 com.project 아래 food 패키지를 하나 만들어주자. 단축키는 ctrl+N이다.

 

package 선택

 

com.project.food라고 입력하고 Finish

 

Package Explorer에서 보이는 화면과 Project Explorer에서 보이는 화면이다. food 추가된것을 확인하자.

어떤것을 사용해도 상관없지만 개인적으로는 Package Explorer가 편한것같다.

 

food 패키지 아래에 controller, dao, service , vo패키지를 추가하자.

 

 

패키지들을 추가한 화면은 다음과 같다.

 

 

2. controller 작성

controller 패키지에 foodController.java file을 만들어주자.

 

class 위에 @Controller 어노테이션을 작성한다.

 

먼저 RequestMapping에서 foodlist.do로 매핑해주고 매개변수로 Model 하나만 선언하고 foodlist를 리턴해준다.

 

WEB-INF/views/ 아래에 foodlist.jsp를 다음과 같이 작성해주자.

일단 div랑 table에 대한 것까지 설명하려면 너무 길어져서 생략. 구글 선생님께 물어보면 자세히 알려주신다.

 

19 line부터 나오는 이상한 녀석 <c:forEach ~ 녀석이 뭘 하려는 건지는 대충 알 것 같다.

forEach문 일테니까 반복문일것이고, 뭔가를 반복해서 <tr>태그에 집어넣겠다... 정도로만 이해가 되면 된다.

 

forEach 안에 있는 item은 controller에서 가져올 값이고 var는 item의 별칭이라고 생각하면 된다.

 

이제 다시 컨트롤러로 돌아가서 다음과 같이 작성하자.

model에 담기는 foodlist가 보이는가? model에 foodlist라는 이름으로 foodList 값을 담는 것이다.

이해안돼도 마지막에 값을 보면 이해할 수 있으니 지금은 그렇다고만 이해하고 넘어가자.

 

의미는 정확하게 모르겠지만 List<foodVO> 형식의 foodList는 foodService.list() 값을 가진다. 정도로는 해석할 수 있다.

일단 foodVO와 foodService를 작성한다.

 

3. vo 작성

먼저 foodVO부터 작성하자.

no, code, name은 1. 실습 데이터 만들기에서 작성했던 테이블에 있는 데이터와 매핑된다.

 

지금도 get()과 set()은 솔직히 지금도 원리를 잘 모르겠다.

일단 지금은 값을 넣어주고 값을 가져오고 할 때 사용하는거라고만 이해하고 있자.

 

저거 get() set()은 직접 작성하지 말고 이렇게 하면 된다.

변수들 작성하고 드래그해서 alt+shift+s - Generate Getters and Setters... 클릭

 

Select All 선택하고 Generate 누르면 자동으로 생성된다.

 

4. service 작성

이제 service를 작성하자

솔직히 이것도 왜 이렇게 해야하는지 이해는 안되는데, 걍 이렇게 굳어진거라고 하네...

일단 하라고 하니까 한다.

 

service는 인터페이스를 만들고 인터페이스를 구현하는 식으로 만든다.

그러니까.. service와 serviceimpl 두 개의 파일이 필요하다.

 

먼저 foodService.java file을 작성한다.

controller에서 List<foodVO> 에 담았던 list()를 작성했다.

 

다음으로 foodServiceImpl.java file을 작성한다.

 

그러니까 지금 여기서 하려는거는 이거다.

1) Dao 객체에 오라클에서 가져온 데이터를 담는다.

2) 그 Dao 객체를 List<foodVO> 객체에 다시 담는다.

 

왜 두 번 일하는건지는 묻지 마라... 나도 모르니까;

아직 공부한 지 얼마 안되어서 지금은 이렇게까지밖에 설명이 안될 것 같다...

 

5. dao 작성

이제 foodDao.java를 작성해보자.

Dao도 Service와 마찬가지로 인터페이스를 작성하고 그것을 구현하는 방식으로 작성한다.

 

foodDaoMyBatis.java를 작성한다.

솔직히 여기는 내가 작성했는데도 설명을 못하겠다... 그냥 이것저것 찾아서 붙여보고 실행되니까 하는 것...

조금 더 공부하고 추가로 작성하던지 이 다음에 토이 프로젝트 진행할 때 설명하겠다!

 

여기까지 controller, vo, service, dao 파일들을 다 작성했다.

 

다음 글에서는 이클립스에서 MH_FOOD 테이블의 데이터를 불러오는 방법에 대해 작성한다.

댓글