본문 바로가기

SPRING

JDBC 실습 - DELETE

* Primary key (기본키)

- 후보키들 중에서 하나를 선택한 키로 최소성과 유일성을 만족하는 속성

- ex) 네이버 아이디, 핸드폰 번호, 주민번호

- 테이블에서 기본키는 오직 1개만 지정 가능

- 기본키는 테이블 안에서 유일하게 각 행들을 구별할 수 있도록 함

- 기본키는 NULL 값을 절대 가질수 없고, 중복된 값을 가질 수 없음

 

* Foreign Key (외래키)

- 한쪽 테이블에서 쓰는 PK를 다른 테이블에서도 사용하는 것

- 테이블끼리 연동할 때 사용 (hr 계정 -> job_history & employees 테이블)

- 테이블을 나누어서 관리하는 것이 효과적일 때, PK로 연결해서 분리시키면 관리하기 편리함


1. IEmpDAO 인터페이스 / EmpDAO 클래스 작성

void deleteEmp(int empid, String email); // 해당 인터페이스 내용 구현

- empid와 email을 받아서 쿼리문을 실행하고, 그 결과값을 update() 메서드를 통해 날려줘

 

EmpDAO 클래스

2. IEmpService 인터페이스 / EmpService 클래스 작성

void deleteEmp(int empid, String email); // 해당 인터페이스 내용 구현

- 리턴값이 없으므로 다른 메서드와 다르게 return 키워드 제외하고 작성

 

 

3. Controller 작성 및 jsp 파일

- redirect는 URL 변경이라고 할 수 있음

 

 

4. 브라우저 출력 확인

4-1) 주소창에 직접 입력하여 확인하는 방법

 

4-2) 직원의 상세 정보를 확인하여(view.jsp) 삭제하기 버튼을 클릭하여 확인

 

 

 

+ HR 계정에서 직원을 삭제할 때 나타나는 에러 사항

job history 테이블의 수정 이력을 다 삭제해야 비로소 employees 테이블의 직원 삭제가 가능하다는 뜻

왜냐하면, 두 테이블이 FK로 연결되어 있기 때문에, FK가 포함된 테이블을 먼저 정리해야 PK가 있는 직원의 정보를 삭제할 수 있다

이러한 오류가 뜨는 이유는 이 직원은 일전에 수정된 적이 있기 때문에

즉, history 기록에 남아있기 때문에 삭제가 불가능해서 오류가 뜨는거임

 

'SPRING' 카테고리의 다른 글

mybatis 실습 - SELECT  (0) 2020.09.04
JDBC 실습 - UPDATE  (0) 2020.09.02
JDBC 실습 - INSERT  (0) 2020.09.01
JDBC 실습 - SELECT [조건(WHERE)이 있는 출력2]  (0) 2020.08.31
JDBC 실습 - SELECT [직원 전체 목록 출력]  (0) 2020.08.30