-
Notifications
You must be signed in to change notification settings - Fork 300
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
Conversation
There was a problem hiding this 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); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이전에 jdbcTempate을 사용했을 때를 생각하면 update 시 해당 쿼리의 영향을 받은 행의 개수가 반환되었던 걸로 기억하고 있습니다.
그런데 영향을 받은 행이 아닌 영향을 받은 행의 id를 반환하는 이유가 있을까요?
There was a problem hiding this comment.
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 { |
There was a problem hiding this comment.
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(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ResultSet도 close를 해줘야하는 군요. 적용해볼게요!
안녕하세요. 제이미! 만나서 반가워요.
step1까지만 한다는게, 하다보니 어느정도 리팩터링도 좀 하게됬습니다.
코드보다가 이해 안된다 하시는 분 있으면, 디엠 편하게 주세요!!
리뷰 잘부탁드립니다.
커밋범위는 다음과 같아요!!
커밋범위
조금 특이한 점으로 JdbcTeamplate을 테스트하기 위해 JdbcTemplate test 패키지에 userDao와 같은 클래스를 추가했어요.
저는 별도로 떠오르는 방법이 없어서, 이와 같이 했어요.
혹시, 다른 방식으로 JdbcTemplate을 테스트하는 코드를 짤 수 있을까요?