• 티스토리 홈
starryeye
  • 프로필사진
    starryeye
    • 분류 전체보기 (189)
      • C++ (17)
      • Java (24)
      • OOP (5)
      • Spring Reactive Stack (12)
        • Reactive Streams (3)
        • Netty (4)
        • Reactor (1)
        • Webflux (3)
        • DB, Cache 연동 (1)
      • Spring (90)
        • Core (17)
        • MVC (33)
        • Client (2)
        • Security (4)
        • DB, Cache 연동 (33)
      • DataBase (12)
        • RDBMS (2)
        • NoSQL (10)
      • Message Broker (6)
      • Web (4)
      • Network (4)
      • 대규모 시스템 설계 (15)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • JDBC 8
        2022년 07월 16일
        • starryeye
        • 작성자
        • 2022.07.16.:41
        반응형

        복구가 가능한 예외는 어떻게 처리하면 좋을까..

         

        예를 들어서..

        키값이 중복이라 DB에서 예외를 던지는 경우를 생각해보자..

        개발자는 이를 애플리케이션 로직상 해결할 수 있다.

        (기존 키값에서 +1 정도로 해결하는 사양일 경우)

         

        DB에서는 SQLException을 발생시키고 던진다.

        개발자는 중복 키에 의한 예외인 것을..

        e.getErrorCode() 로 알 수 있다.

        중복 키 처리에 대한 로직은 서비스 계층에 들어가야 하는데...

        이를 처리하는 조건문을 위해 서비스 계층에 SQLException을 던지면 ..

        또.. OCP 위반이다.

        아래 방법을 참고 하자.

         

        repository에서 해결해보자..

        repository 구현체 코드 중 일부이다.

        DB에서 발생된 SQLException 예외 중,

        중복 key의 경우 MyDuplicateKeyException 예외로 변환하여 던지고 있다. 

        (H2 DB의 경우 23505 이며 다른 DB는 또 다르다..)

        이렇게 구현하면.. 서비스 계층에서는 MyDuplicateKeyException 예외라면..

        key 값을 +1 하여 다시 save를 호출하는 방식으로 개발 하면 된다.

         

        <참고>

        H2 DB의 error code 문서

        ErrorCode (h2database.com)

         

         

        반응형

        'Spring > DB, Cache 연동' 카테고리의 다른 글

        JDBC 10  (0) 2022.07.16
        JDBC 9  (0) 2022.07.16
        JDBC 7  (0) 2022.07.16
        JDBC 6  (0) 2022.07.13
        JDBC 5  (0) 2022.07.13
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바