카테고리 없음

[Database Programming] 11. 데이터베이스 구성 실습 - 자바와 오라클 연결하기

코딩펭귄 2024. 2. 29. 10:13

왓챠 사용자계정 만들기

 

1st. 시스템계정 -> 새 sql편집기 만들기

사용자아이디를 WATCHA로 전부 바꾸기 (CTRL + C + F)

OracleX21WATCH PASSWORD : WATCHA로 설정

ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;
CREATE USER WATCHA IDENTIFIED BY WATCHA; --계정과 DB 함께 만들어줌
ALTER USER WATCHA DEFAULT TABLESPACE users QUOTA UNLIMITED ON users;
ALTER USER WATCHA TEMPORARY TABLESPACE temp;
GRANT CREATE SESSION, CREATE VIEW, ALTER SESSION, CREATE SEQUENCE TO WATCHA;
GRANT CREATE SYNONYM, CREATE DATABASE LINK, RESOURCE, UNLIMITED TABLESPACE TO WATCHA;

-> 위 코드 한줄씩 실행

 

2nd. WATCHA 계정에서 새 sql편집기 만들어서 편집기로 추출했던 코드 붙여넣고 실행(스키마 연결후 테이블 생성)

 

 

 

자바와 오라클 연결

자바에서 '감독'을 추가하는 방법

1. 이클립스에서 'watcha' 프로젝트 생성
2.  jar 경로설정 : 프로젝트 우클릭 > Build path > congifure build path > libraries > classpath > Add External JARs
 > 다운받았었던 ojdbc11.jar 선택

3. 패키지 만들어주고, 아래 3개의 코드 추가

이렇게 설정해주면 보기 직관적으로 보기 편하다. 설정 사라질때마다 다시 해주기

아래 이미지와 같이 패키지 구성하기

패키지의 역할

- vo 패키지 : 데이터클래스만 들어감 value object = 데이터만 가지고있는 객체

- dao 패키지 : 여기에 들어가는 클래스만 데이터베이스와 통신을 함(=데이터에 접근하는 객체 data access object)

- service 패키지 : 트랜잭션을 담당

- util 

 

디비거에서 시퀀스 만들어주기

WATCHA > Sequences > 우클릭 create new sequence 해서 새 시퀀스 만들기

- Sequence Name : SEQ_MOVIES_PK

- Value : 시퀀스가 가질 값 : 보통 1을 줌

- Min Value : 번호표가 몇번부터 시작할것인가

- Max Value : 999999 (사전에 설정을 000001로 해뒀으므로)

- Increment : 번호표 하나씩 발급할떄마다 번호표의 값이 얼마나 증가할것인가

- Cache : 24 작성. = 일단 번호표 24개를 미리 뽑아놓는것 -> 다 소진되면 다시 번호표 24개 뽑아서 줌 -> 반복

- cycle : 체크하면 1~999999 다 돌고나면 다시 1을 준다는것 ( pk를 숫자로만 관리를 한다면, 이값이 증가되어 999999가 됐을때 다음번호는 1번이 되므로, 처음의 1번값과 중복이 됨 -> 이 중복을 방지하기위해 실무에서는 이 번호 앞에 날짜(+시간)를 붙임! )

> save > persist

 

 

WATCHA 에서 새 sql 편집기 생성 후 작업

번호표(시퀀스) 발급해보기
-- 실행 시킨 만큼 번호표(시퀀스) 발급됨
SELECT SEQ_MOVIES_PK.NEXTVAL --NEXTVAL : 번호표를 발급하라는 키워드 (다음번호)
  FROM DUAL 
;
--현재의 번호표가 몇번인지 알고싶을때
SELECT SEQ_MOVIES_PK.CURRVAL -- CURVAL : 현재까지발급된 가장큰 번호
  FROM DUAL 
;

 

 


 

패키지의 역할

1. vo 패키지

- 데이터클래스만 들어감 value object = 데이터만 가지고있는 객체 

- database의 directors테이블과 1:1로 매핑되는 클래스

 

2. dao 패키지

- 여기에 들어가는 클래스만 데이터베이스와 통신을 함(=데이터에 접근하는 객체 data access object)

- data access object

- directorsDao.java : java에서 Database를 연동하기 위한 클래스

- dao 클래스만 database와 연동된다 (-> 쿼리가 필요한경우 dao와 무조건 연결)

 

3. service 패키지

- DirectorService.java : dao가 처리하는 쿼리의 트랜잭션(커밋, 롤백)을 처리하는 클래스

- 업무(처리)흐름과 관계 -> 코드를 업무의 흐름대로 작성함

 

4. directors handler.java

- 사용자가 특정 기능을 호출

- 항상 service를 멤버변수로 가짐

- directorsDao를 

- ex) 감독을 신규로 추가해 달라 / 감독이 제작한 영화의 목록을 조회해 달라등의 기능 호출

 -> directorsService.java를 통해서 호출하게 됨

 

5. database

6. util 

 

 

 

                                            진행 순서)

                                                 7)  1) DirectorsHandler.java (바로아래있는 파일 호출 가능) handler : 서비스호출

                                                                    ________|_________

                                                                    |                                  |

                                          6)  2) DirectorsService.java             ActorsService.java (service: 바로아래의 dao 트랜잭션 관리)

                                                    ________|_________

                                                   |                                   |

                               5)  3) DirectorsDao.java           ActorsDao.java

              (Dao가 처리하는 insert, update, delede는 Service가 직접 실행시킨다)

                                                                      |

                                                                  4) DB