EMPLOYEES 테이블과 DEPARTMENTS 테이블을 Inner Join을 통해서
두 테이블을 DEPARTMENT_ID 컬럼을 통해 조인한 결과물을 자바에서 출력한다고 해보자.
SELECT *
FROM EMPLOYEES E
INNER JOIN
DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID);
쿼리는 위와 같다.
근데, 문제는 이거다.
지금까지 JDBC를 활용했을 때, 테이블은 각각 하나의 DTO에만 저장을 했었는데
지금은 조인을 했기 때문에 예를 들어서 DepartmentDTO 클래스라고 한다면,
DEPARTMENTS 테이블의 컬럼들 정보만 이 클래스에 넣을 수 있고, 나머지 EMPLOYEES 테이블의 정보는 넣지 못한다.
잘 생각해보면 이 데이터들은 관계가 존재한다.
각각 사원들은 하나의 부서를 가지고 있다.
근데 반대로 하나의 부서는, N개의 사원들을 가지고 있다.
그래서 이를 자바로 표현하자면,
EmployeeDTO의 클래스에서는 결국 DepartmentDTO 객체 하나를 멤버로 하나를 가지고 있는 것으로 표현할 수 있고,
DepartmentDTO 클래스에서는 EmployeeDTO의 List를 멤버로 가지고 있는 것으로 표현할 수 있다.
지금 상황에서는 Is A 개념이 아니라 Has A 개념이기 때문에 상속이 아니라, 멤버변수로 선언해서 사용해야한다.
또 다른 방법으로는, EmployeeDTO LIST만을 멤버변수를 가지고 있는 EMPDTO 클래스를 따로 만들어서
DepartmentDTO 클래스를 상속을 한다음 사용하는 방법도 있다.
'웹개발 풀스택 과정 > Database(Oracle)' 카테고리의 다른 글
24일차(2022.01.25) _ JDBC - INSERT, UPDATE, DELETE문 JAVA와 연결, 시퀀스 기초사용법 (0) | 2022.01.25 |
---|---|
24일차(2022.01.25) _ 명령어 DML - INSERT, UPDATE, DELETE문 (0) | 2022.01.25 |
23일차(2022.01.24) _ Join 기본 (0) | 2022.01.24 |
23일차(2022.01.24) _ DDL - 제약조건 (0) | 2022.01.24 |
22일차(2022.01.21) _ SubQuery - 테이블 간의 연결 (0) | 2022.01.21 |