[BoostCourse] 프로젝트 5. 예약관리 시스템: 예약하기 (BE)
- 이전 글
- [부스트코스] 프로젝트 5. 예약관리 시스템: 예약하기 분석 및 설계
- 다음 글
- [부스트코스] 프로젝트5. 예약관리 시스템: 예약하기(FE) 제출 [PASS & Feedback]
BE_PJT E-1. 예약관리 시스템: 예약하기
피드백 요약
하단에 작성된 내용은 기능관련 피드백만
1. Service
- auto seq (key) 기능 사용하기 (ref - link)
SimpleJdbcInsert(docs)
위 사이트에서 SimpleJdbcInsert라는 내용을 살펴보면
1. SimpleJdbcInsert 클래스 선언
2. setDataSource() 메서드에서 new SimpleJdbcInsert() 클래스 생성
3. withTableName("테이블명").usingGenerateKeyColumns("pk명") chaining 메서드를 통해 필요한 값을 주입
4. AutoGenerated Key 사용할 메서드에서 executeAndReturnKey("파라미터") 메서드를 통해 입력된 값에 대한 Auto-generated Key를 얻을 수 있다.
5. 위 사이트의 예시에서 first_name, last_name을 파라미터로 넣는 이유를 몰랐는데 직접 해보면 테이블에 기본값이 없는 필드는 입력을 해주어야 원하는 key 값을 얻을 수 있다.
위 테이블 보면 product_id, display_info_id, reservation_name, reservation_tel, reservation_email, reservation_date 필드에 "기본값이 없음"을 알 수 있다.
위 로그에 132 라는 값을 DB에서 확인
자동증가 132의 값이 리턴되는 것을 알 수 있다.
현재 프로젝트에 적용되어 있는 클래스는 NamedParameterJdbcTemplate이기 때문에 밑의 내용으로 Generated Key를 구현
NamedParameterJdbcTemplate.update 알아보기(docs)
- update 메서드 중 generatedKeyHolder를 파라미터로 사용하는 메서드가 2개 있다.
Issue an update via a prepared statement, binding the given arguments, "returning generated keys".
public int update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder)
public int update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder, String[] keyColumnNames)
위 update메서드를 통해 리턴받은 generated key
2. Controller
- 파라미터의 null이나 공백("") 체크에 대한 조건식 처리
apache에서 제공하는 라이브러리 사용
Maven Library
참고 사이트
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html
이후 수정한 내용
- 기존 세션에 대한 로직을 페이지 요청 컨트롤러에서 모두 처리하여 불필요한 코드를 줄여보았다.
'Edu > BoostCourse Web Project' 카테고리의 다른 글
[부스트코스] 프로젝트 6. 예약관리 시스템: 한줄평 등록 (5) | 2020.01.02 |
---|---|
[부스트코스] 프로젝트5. 예약관리 시스템: 예약하기(FE) 제출 [PASS & Feedback] (0) | 2019.12.28 |
[부스트코스] 프로젝트 5. 예약관리 시스템: 예약하기 분석 및 설계 (2) | 2019.07.22 |
[부스트코스] 프로젝트 4. 예약관리 시스템: 상세페이지 (FE) 2차 제출 - [PASS & Feedback] (0) | 2019.02.10 |
[부스트코스] 프로젝트 4. 예약관리 시스템: 상세페이지 (FE) 1차 제출 - [FAIL & Feedback] (0) | 2019.02.01 |