쌍용 강북 교육센터 국비학원 Day 37일차
오라클 DB의 Exception을 자바에서 처리하는법
다음은 오라클에서 사용자가 정의한 예외이다. 오라클에서 명시적으로 이미 지정한 예외코드는 0 ~ -20000 이고 사용자가 정의한 에러코드의 코드번호는 -20000 ~ 에서부터 시작한다.
해당하는 에러코드를 getErrorCode( ) 로 가져와 그대로 예외처리를 해주면 된다.
Errorcode 1은 오라클에서 Primary Key가 중복되었을때 나오는 에러코드 (제약조건의 위배) 이므로 자바에서는 그대로 가져와 출력만 다르게 (세부화) 해주었다. 나머지 20004,과 20003 도 오라클에서 이미 정의한 예외를 가져와서 처리해주었다.
데이터 처리 순서
사용자 (USER)가 데이터를 입력해 DTO에 넣어 전송 => DTO를 받은 서버 => DAO를 이용하여 데이터베이스로 데이터를 집어넣는다.
DTO (Data Transfer Object) 데이터 전송 객체
어떤 테이블에 데이터를 insert 하고자 할때 DTO에 담아서 보낸다. 또한 DB의 저장된 데이터를 읽어올때도 (select 하고자 할때에도) 객체에 담아서 가져온다.
즉, 데이터 교환을 하기 위해 사용하는 객체로 (Java Beans를 의미한다), DTO는 로직을 가지지 않는 순수한 데이터 객체 (getter & setter 만 가진 클래스)입니다.
DAO (Database Access Object)
데이터베이스에 접근(연결) 하여 어떠한 작업을 하는 객체이다. 즉, SQL구문 (DDL, DML, DQL)을 실행시켜주는 객체이다.
DataBase에 접근 하기 위한 로직 & 비지니스 로직을 분리하기 위해 사용한다.
VO (Value Object)
VO는 값 오브젝트로써 값을 위해 쓰인다. Read-Only 특징 (사용하는 도중에 변경 불가능하며 오직 읽기만 가능) 을 가진다. DTO와 유사하지만 VO는 getter 기능만 존재한다.
DTO와 VO 차이점
DTO는 인스턴스 개념이고 VO는 리터럴 값 개념으로 VO는 값들에 대해 Read-Only를 보장해줘야 존재의 신뢰성이 확보되지만 DTO의 경우는 단지 데이터를 담는 그릇의 역할일 뿐 값은 그저 전달되어야 할 대상일 뿐이다.
값 자체에 의미가 있는 VO와 전달될 데이터를 보존해야하는 DTO의 특성상 개념이 다르다.
오늘은 여기까지.
'Java' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 39일차 JDBC (Transaction - 트랜잭션) (0) | 2023.02.27 |
---|---|
쌍용강북교육센터 국비 학원 Day 38일차 JDBC (싱글톤 패턴 - Singleton Pattern) (0) | 2023.02.24 |
쌍용강북교육센터 국비 학원 Day 36일차 JDBC (PreparedStatement, CallableStatement) (0) | 2023.02.22 |
쌍용강북교육센터 국비 학원 Day 35일차 JDBC (0) | 2023.02.22 |
쌍용강북교육센터 국비 학원 Day 22일차 Java (입출력 스트림 Input, OutputStream, FileReader, Writer) (0) | 2023.02.02 |