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 라이브러리 구현하기 - 3,4단계] 케로(김지현) 미션 제출합니다. #606

Merged
merged 8 commits into from
Oct 12, 2023

Conversation

jyeost
Copy link

@jyeost jyeost commented Oct 11, 2023

안녕하세요 민트...
어제도 심신이 옳지 못한 관계로 오늘 제출합니다....ㅜㅜ
편의 봐주셔서 감사합니다...ㅜㅜ

지난 리뷰에서 마음 깊이 이해했지만 시간관계상 반영하지 못한 부분이 몇 있습니다...
2단계 답변

3단계
4단계

@jyeost jyeost requested a review from yujamint October 11, 2023 08:47
Copy link
Member

@yujamint yujamint left a comment

Choose a reason for hiding this comment

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

안녕하세요 케로! 민트입니다.
바쁘고 정신 없는 와중에도 끝까지 미션 진행하느라 고생 많으셨어요.
리뷰 내용, 요구사항 모두 잘 반영하신 것 같아서 어프루브하도록 하겠습니다.
다만 Connection이 닫히지 않는 이슈가 있는 것으로 보입니다. 이 부분에 대해서는 코멘트 남겼으니 나중에 여유로울 때 슬쩍 보시면 좋을 거 같습니다.
새로운 미션이자 마지막 미션도 파이팅하시고, 레벨4 잘 마무리하시길 바라겠습니다! 고생하셨습니다~

public void insert(final User user) {
transactionTemplate.execute(() -> {
userService.insert(user);
return null;
Copy link
Member

Choose a reason for hiding this comment

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

void 메서드마다 null을 반환하는 것이 불편하다면, TransactionTemplate에 void 타입을 반환하는 메서드를 하나 더 만들어도 좋을 거 같아요!

Copy link
Author

Choose a reason for hiding this comment

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

그런 방법이 있군여...!!!
수정해보도록 하겠습니다 감사합니다 !!!

throw new DataAccessException(e);
} finally {
turnOnAutoCommit(connection);
DataSourceUtils.releaseConnection(connection, dataSource);
Copy link
Member

Choose a reason for hiding this comment

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

현재 DataSourceUtils.releaseConnection()은 autoCommit 모드일 때만 Connection을 닫아주는 것으로 보여요! 그렇다면 트랜잭션을 실행한 Connection은 autoCommit이 false이기 때문에 계속 닫히지 않을 거 같아요.

혹시 제가 놓친 부분이 있는 걸까요?!

Copy link
Author

@jyeost jyeost Oct 13, 2023

Choose a reason for hiding this comment

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

finally문 안에서 conncetion을 unbine하기 전에 turnOnAutoCommit() 메서드를 이용하여 오토커밋을 다시 켜주어 DataSourceUtils 에서 판단 할 수 있도록 하려 했는데,,,
실수로 turnOnAutoCommit()메서드의 구현을 잘못한 것 같습니다,,,
짚어주셔서 감사합니다 !!!

return executeQuery(sql, PreparedStatement::executeUpdate, parameters);
}

private <T> T executeQuery(final String sql, final PreparedStateExecutor<T> executor, final Object... parameters) {
Copy link
Member

Choose a reason for hiding this comment

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

잘 반영해 주셨네요! 훨씬 깔끔해진 것 같습니다 ㅎㅎ

@yujamint yujamint merged commit ccb2e17 into woowacourse:jyeost Oct 12, 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.

2 participants