inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

15강. 유저 업데이트 API, 삭제 API 예외 처리 하기

15강 질문

458

작성자 없음

작성한 질문수 0

1

안녕하세요 선생님.

jdbcTemplate.query(readSql, (rs, rowNum) -> 0, request.getId())에서 (rs, rowNum) -> 0과 request.getId()의 자리가 바뀌면 안 되나요? 왜 위치가 저런 건가요?

그리고 왜 수정은 id 기준이고 삭제는 이름 기준인가요?

java spring aws mysql spring-boot jpa

답변 1

0

최태현

안녕하세요, 화이팅님!! 좋은 질문 주셔서 감사드립니다!! 😊

하나씩 답변 드려 볼게요!!

 

[1. (rs, rowNum) -> 0과 request.getId()의 순서]

현재 저희가 사용하고 있는 코드는 jdbcTemplate.query() 인데요! query 부분에 커서를 대고 ctrl + 클릭 (Mac이시면, command + 클릭) 해보시면 저희가 사용하는 JdbcTemplate 코드를 확인할 수 있습니다!!!

 

image

그럼 아마 이런 함수를 보게 되실거에요! 이 함수의 파라미터를 보시면

  • 첫 번째가 String으로 이루어진 SQL,

  • 두 번째가 RowMapper (저희가 작성한 (rs, rowNum) -> 0 이 RowMapper의 람다식입니다. 익명클래스와 람다식에 대해 더 잘 알고 싶으시면 https://developer-talk.tistory.com/499 와 같은 블로그를 보시는 것도 좋을 것 같아요!!)

  • 마지막 세 번째가 SQL에 있는 ?에 들어갈 변수들입니다.

즉, JdbcTemplate 개발자가 작성한 코드를 저희가 사용하는 입장이기 때문에 파라미터의 순서를 변경할 수는 없습니다.

그리고 JdbcTemplate 개발자가 Object... args 를 제일 마지막에 받도록 한 이유는, 일반적으로 Java의 가변인자가 파라미터의 제일 마지막에 위치하기 때문입니다! 가변인자에 대해 궁금하시다면 https://sleepyeyes.tistory.com/29 를 보셔도 좋습니다!

 

[2. 왜 수정은 id 기준으로 삭제는 name 기준인가]

결론부터 말씀드리자면, 요구사항이 그렇게 정해졌기 때문인데요! 요구사항을 이렇게 정한 이유는, DB의 PK를 기준으로 데이터를 가져오는 것과 DB의 일반 column을 기준으로 데이터를 가져오는 것을 보여드리기 위해서입니다!

JdbcTemplate을 이용할 때도 다르고, Spring Data JPA를 이용할 때도 약간의 차이가 있거든요!

 

또 궁금한 점 생기시면 편하게 질문 주세요~!! 🙏

감사합니다!! 🙇

패키지 구분에 대해 궁금한게 있습니다

0

27

2

리액트 관련 질문이 있습니다.

0

65

2

스프링부트 버전

0

78

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

60

2

33강. UserLoanHistory의 관계성에 대한 질문

1

56

2

Java JDK 버전 문의의 건

0

136

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

90

3

h2 console 접속했을 테이블 질문

1

67

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

82

2

15강. updateUser() 질문

0

57

2

깃허브 질

0

86

2

여기까지 다 끝냈다고 하셨는데

0

80

2

왜안될까요

0

72

2

MySQL 창이안ㄴ뜹니다

0

59

2

포스트맨

0

53

1

spring 개념적인 질문

0

72

2

인텔리제이 샘플코드 실행 안됨 오류

0

144

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

88

1

마이그레이션 오류입니다.

0

176

3

Whitelabel Error Page 오류가 났습니다.

0

172

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

94

3

궁금한게 있습니다.

0

61

2

DTO 관련

0

71

2

궁금한게 있습니다!

0

70

2