Spring - petclinic(1)

cook1eee·2021년 7월 20일
0

petclinic

목록 보기
1/6
post-thumbnail

프로젝트 살펴보기 과제

  1. LastName이 아니라 FirstName으로 검색

    뷰 변경
    코드 조금 변경

  2. 정확히 일치하는게 아니라 해당 키워드가 들어있는 걸 찾아보기

    쿼리만 변경

  3. Owner에 age 추가

    모델 변경
    스키마 변경
    데이터 변경
    뷰 변경

풀이(코드 변경)

1. LastName이 아니라 FirstName으로 검색

1) findOwners.html 변경

resources/templates/owners/findOwners.html

12번째 라인 Last name -> First Name
14번째 라인 lastName -> firstName

2) OwnerController.java 변경

java/org.springframework/samples/petclinic/owner/OwnerController.java

86, 87, 91번째 라인 getLastName() -> getFirstName()
91번째 라인 findByLastName -> findByFirstName 변경 후 메서드 생성

3) findByLastName 메서드 생성하기

java/org.springframework/samples/petclinic/owner/OwnerRepository.java

findByLastName 메서드는 OwnerRepository.java 에 생성


2. 정확히 일치하는게 아니라 해당 키워드가 들어있는 걸 찾아보기

1번에서 추가한 findByLastName 메서드

64번째 라인 query문에서 맨 마지막 LIKE :firstName% -> LIKE %:firstName%

:%firstName% 가 아니라 %:firstName%인 이유
query문에 변수명을 넣을때 :변수명 형식이기 때문(바인드 변수, 호스트변수)

3. Owner에 age 추가

1) 모델 변경

java/org.springframework/samples/petclinic/owner/Owner.java

age라는 변수 추가 후 getter, setter 메서드 추가

2) 스키마 변경

DB, 스키마, 데이터는 application.properties에서 어디에 정의되어 있는지 확인 가능

application.properties

db : h2
schema : db/h2/schema.sql
data : db/h2/data.sql

위에서 확인한 경로를 통해 해당 스키마 변경

resources/db/h2/schema.sql

age 컬럼 추가

3) 데이터 변경

resources/db/h2/data.sql

데이터 삽입 시 수정한 스키마에 맞춰서 데이터 삽입을 하기 위해 age 컬럼에 해당하는 INTEGER 형식의 데이터를 추가 (여기서 20으로 설정)

4) 뷰 변경

1. Owner를 추가 할때 나이를 적는 부분 추가

resources/templates/owners/createOrUpdateOnwerForm.html

13,14번째 라인 추가

2. 지금까지 수정한 정보를 화면에 보여주는 OnwerList 뷰 수정

resources/templates/owners/ownersList.html

출력할 테이블에서 컬럼명(Age)을 출력하기 위해 코드 추가(13번째 라인)

resources/templates/owners/ownersList.html

각 사람들의 나이를 출력하기 위해 코드추가(25번째 라인)

3. 검색한 Owner의 세부 정보 페이지에서 나이 출력

resources/templates/owners/ownerDetails.html

17~20 라인 추가


추가

PetClinicApplication으로 실행 시 css 적용 안되는 문제
./mvnw wro4j:run 으로 메이븐으로 css만 빌드해서 css 생성하고
PetClinicApplication 실행

html 코드 변경 시 프로젝트 재시작 말고 ctrl+f9를 통해 바로 적용

0개의 댓글