우리는 하루 동안의 코드에서 종종이 시나리오를 발견한다. db에 특정 레코드가 있는지 확인하고 싶으면 아무 일도하지 않지만 레코드가 누락 된 경우 작업을 수행 한 다음 레코드를 삽입하십시오.성능의 관점에서 duplicatekeyexception은 레코드가 먼저 존재하는지 확인하는 것보다 낫다.
푸시 알림을 보내는 동안 알림을 보내려는 경우에만 보내려합니다.
우리는 코드를 두 가지 방법으로
먼저 체크를 작성할 수있는 경우 notificationSent
boolean notificationSent = notificationDao.checkNotificationId(notificationId);
if(notificationSent){
return;
}
else{
//send notification
notificationDao.insertNotification(notificationModel);
}
우리는 예외 동안을 얻는 경우에 다른 방법은, 두 번째 경우에 시도 캐치
try{
notificationDao.insertNotification(notificationModel);
//send notification
}
catch(DuplicateKeyException e){
// log and do nothing
}
함께 할 것 실제 알림을 보내면 삽입물이 롤백됩니다. 따라서 첫 번째와 두 번째 접근법은 기능적으로 다르지 않습니다.
하지만 첫 번째 경우에는 db 호출을 두 번째 경우에 저장하는 동안 2 db 호출이 이루어집니다. 전반적으로 더 나은 접근 방식입니까?