728x90

스프링부트 3

PSQLException 예외처리 - getCause()와 getSQLState() 활용해 DB 연결, data insert 예외처리 | PSQLException exception handling - DB connection and data insertion using getCause() and getSQLState() [spring boot]

검색해도 Postgresql의 exception인 PSQLException 예외처리는 잘 안 나왔다. 그래서 PSQLException 예외 처리를 위해 getCause()랑 getSQLState()를 해봤다.  [ 전제 상황 ]jpa 말고 preparedStatement (pstmt) 사용datasource.getConnection()으로 연결 시도DB 연결을 시도 했을 때 exception 처리 부분PSQLException에서 추적한 exception은 ConnectionException 밖에 없었다.ConnectionException은 DB 서버가 꺼졌을 때 발생한다.db 사용자명, 비밀번호, 권한이 다를 때는 getCause()나 getSQLState()에서 반응하지 않아 PSQLException까..

Jpa 삭제된 데이터의 개수 확인하기 + log로 표시 | Jpa Check the number of deleted data + display as log [spring boot]

[전제 상황]jpa 사용 - 스프링 부트, 자바특정 기간보다 오래된 데이터 삭제 (각자 상황에 따라 맞춰서 변경)JpaRepository의 삭제 함수 return 타입을 int로 정의한다.void deleteByDateLessThan(삭제기간); → int deleteByDateLessThan(삭제기간);이러면 삭제한 데이터의 값이 반환된다.즉, 삭제한 데이터가 없으면 0, 있으면 1이상의 숫자가 return@Repositorypublic interface SampleRepository extends JpaRepository, JpaSpecificationExecutor { @Modifying int deleteByDateLessThan(삭제기간);} 2. if문으로 삭제된 데이터 유무 파악하..

Hikaricp에서 초기화 시 DB(Datasource) 자동 연결을 피할 수 없다. Hikaricp, automatic DB (Datasource) connection cannot be avoided during initialization. [spring boot]

영어 검색이든,, 어디든 다 뒤져보고chatGPT도 답이 없던 문제였기에 다른 사람은 고생하지 않았으면 해서 기록한다.[ 문제 상황 ]hikari Datasource를 이용해서 3개의 DB를 다루고 있다.3개 중 1개의 DB는 처음 실행 시 hikari pool에서 초기화하지 않고 필요할 때마다 연결 확인 후 이용다만, 3개다 초기에 DB 연결 시도를 하려고 함. 그러면 DB가 connect 되지 않는 상황을 exception처리하면 되지 않나?-> Hikaricp에서 자동으로 연결 시도를 하기 때문에 처음에는 모두 연결 시도를 하려고 함.-> Hikari Pool에서 발생하는 exception은 처리하기가 어려움. (할 수 있는지는 모르겠음)  나중에 연결 시도할 Datasource에 설정을 이렇게 한..

728x90
반응형