Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JDBC 라이브러리 구현하기 - 1단계] 홍실(홍혁준) 미션 제출합니다. #270

Merged
merged 13 commits into from
Oct 2, 2023

Conversation

hong-sile
Copy link
Member

@hong-sile hong-sile commented Sep 26, 2023

안녕하세요. 제이미! 만나서 반가워요.

step1까지만 한다는게, 하다보니 어느정도 리팩터링도 좀 하게됬습니다.

코드보다가 이해 안된다 하시는 분 있으면, 디엠 편하게 주세요!!

리뷰 잘부탁드립니다.

커밋범위는 다음과 같아요!!
커밋범위

조금 특이한 점으로 JdbcTeamplate을 테스트하기 위해 JdbcTemplate test 패키지에 userDao와 같은 클래스를 추가했어요.
저는 별도로 떠오르는 방법이 없어서, 이와 같이 했어요.
혹시, 다른 방식으로 JdbcTemplate을 테스트하는 코드를 짤 수 있을까요?

@hong-sile hong-sile requested a review from JJ503 October 2, 2023 02:09
Copy link
Member

@JJ503 JJ503 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

안녕하세요 홍실!
우선 리뷰 요청 알림을 보지 못해 리뷰가 많이 늦어진 점 정말 죄송합니다..! 🙇

그리고 테스트 관련해서 질문을 주셨는데, 아직 홍실이 해주신 방법보다 더 좋은 방식을 생각해 내기 어렵네요...
사실 저는 이번에 테스트를 아무 생각 없이 진행하지 않아, 2단계를 진행하며 테스트에 대한 고민을 해보도록 하겠습니다.

그 외에는 이미 요구 사항에 대해선 만족하기에 간단한 리뷰 몇 가지와 함께 approve 합니다.
고생 많으셨고 연휴 잘 마무리하세요!
2단계에서 뵙겠습니다~

log.debug("query : {}", sql);
setPreparedStatement(pstmt, parameters);
pstmt.executeUpdate();
return extractId(pstmt);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이전에 jdbcTempate을 사용했을 때를 생각하면 update 시 해당 쿼리의 영향을 받은 행의 개수가 반환되었던 걸로 기억하고 있습니다.
그런데 영향을 받은 행이 아닌 영향을 받은 행의 id를 반환하는 이유가 있을까요?

Copy link
Member Author

@hong-sile hong-sile Oct 3, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JdbcTemplate이 영향을 받은 행의 개수를 반환한다는 것은 알고 있었어요. 하지만 굳이 JdbcTemplate과 똑같이 할 필욘 없다고 생각했습니다.
사실 영향을 받은 행의 개수를 반환하게 해도 해당 값을 사용할 일이 적다고 생각했어요.
잘 쓰이지도 않는 영향을 받은 행의 개수를 반환할 바엔, id를 반환하게 하는 게 조금 더 유용하게 쓰일 메서드라고 생각했어요.
id는 보통 db에 의존하는 방식이고, 자바코드에서 별도의 쿼리를 날리지 않는 이상 알 수 있는 방법은 없으니까요.
insert를 하고 location을 반환할 때도 쓰일 수 있고요.

근데, 지금 다시 보니 여러개의 row를 업데이트 하는 상황이랑은 조금 안 맞는 것 같네요.
조금 더 고민해보고 적당한 방향으로 반영해보겠습니다.

import org.springframework.jdbc.core.test_supporter.User;
import org.springframework.jdbc.core.test_supporter.UserDao;

class JdbcTemplateTest {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

테스트까지! 꼼꼼하시군요 👍

try (final Connection connection = dataSource.getConnection();
final PreparedStatement pstmt = connection.prepareStatement(sql)) {
setPreparedStatement(pstmt, objects);
final ResultSet rs = pstmt.executeQuery();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ResultSetAutoCloseable를 상속받고 있다고 하네요.
ResultSet도 함께 try-with-resources를 적용해줘야 할 것 같아요!

image

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ResultSet도 close를 해줘야하는 군요. 적용해볼게요!

@JJ503 JJ503 merged commit cd74a44 into woowacourse:hong-sile Oct 2, 2023
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants