인프런 커뮤니티 질문&답변

빵빵이님의 프로필 이미지

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

DataSource 적용

try catch

작성

·

164

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
다름이 아니라
try-with-resources 사용하면 자원이 끊길 때 알아서 close() 호출해주니까 JdbcUtils로 닫을 필요없이
try-with-resources 사용하면되지 않나요?!

try ( Connection con = getConnection();
      PreparedStatement pstmt = con.prepareStatement(sql)) {
    pstmt.setString(1,memberId);
    int resultSize = pstmt.executeUpdate();
    log.info("resultSize={}", resultSize);
} catch (SQLException e) {
    log.error("db error",e);
    throw e;
}

 

답변 2

0

안녕하세요. 빵빵이님, 공식 서포터즈 OMG입니다. 

AI 답변을 참고해주세요 🙂

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

질문자님께서는 try-with-resources를 사용하여 JDBC에서 자동으로 close() 메서드를 호출하는 과정에 대해 질문하셨습니다. 이 방식은 자원을 자동으로 해제함으로써 개발자가 직접 자원을 해제하는 코드를 작성하는 번거로움을 줄여줍니다.

비슷한 주제에 대한 질문과 답변이 있어 소개드립니다:

  • 제목: MemberRepositoryV0를 try-with-resources를 사용해 refactoring 해봤습니다..
    • 내용: 이 질문에서는 try-with-resources를 사용하여 기존의 JDBC 코드를 리팩토링한 사례가 공유되었습니다. 공식 서포터즈 y2gcoder 님께서 JDBC와 Java 7 이상을 사용하는 환경에서 try-with-resources의 적용이 좋은 방법이라고 답변하셨습니다. 또한, Java 9부터는 이 문법의 사용성이 향상되었다는 점도 언급되어 있습니다.

이 사례는 try-with-resources 구문을 사용하여 JDBC 연결에서 자원을 자동으로 관리하는 방법에 대한 실질적인 예시와, Java 버전에 따른 사용 가능성에 대한 정보를 제공합니다.

질문자님께서 언급하신 코드 스니펫은 try-with-resources를 이용해 ConnectionPreparedStatement 객체를 자동으로 닫는 예제입니다. 이 방식을 사용함으로써, 명시적으로 close() 메서드를 호출하지 않아도 되므로 코드의 안정성과 가독성을 모두 향상시킬 수 있습니다. 따라서, 질문자님의 판단은 정확하며, 이런 방식은 JDBC를 사용하는 백엔드 개발에서 자주 적용되는 모범적인 패턴입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.