천재강쥐 2022. 9. 5. 09:54

 

더보기

오라클과 자바를 연동하기 위한

JDBC를 사용하기 위해 기본 환경을 세팅해 보자

 

 

 

JDBC(Java DataBase Connectivity)

Oracle과 연동하려면 OJDBC가 필요함!

👉🏻 홈페이지에서 다운로드 받을 수도 있지만 Oracle 다운로드 시 함께 다운받아져 있으므로 하기 경로 확인해 볼 것!

 

 

<OJDBC>

경로

C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib

 

경로, 컴퓨터 유저 이름, 파일 이름 등이 한글일 경우 오류 날 여지가 있으므로

반드시 영어로 작성할 것!

 

ojdbc6.jar  → 우리가 쓸 ojdbc 버전

ojdbc6_g.jar → 변경사항 있을 때마다 로그 기록하므로 성능 저하 이슈 있음

 

ojdbc6.jar 오른쪽 마우스 클릭 - 복사 - C드라이브에 dev 폴더 생성(develop의 약자) - 붙여넣기

.jar = complie된 .class 파일이 저장되어 있는 압축파일

이 파일을 통해 java.sql API를 자유롭게 쓸 수 있게 됨!

 

 

 

JDBC 사용 객체

1단계) DriverManager: 데이터 원본(자바, 오라클 자료)에 JDBC드라이버를 통하여 커넥션을 만드는 역할

             Class.forName() 메소드를 통해 생성하며 반드시 예외처리를 해야 함!

             DB와의 연결 준비

 

2단계) Connection 객체 생성: DB와의 연결 정보들을 담고 있는 역할

             createstatement() 메소드를 호출하여 statement 객체 생성

              SQL 문장을 실행시키기 전에 우선 Connection 객체가 있어야 함

             연결 정보 넘기면서 커넥션 생성

 

3단계) Statement객체 생성

             connection 객체에 의해 프로그램에 리턴되는 객체에 의해 구현되는 일종의 메소드 집합 정의

 

4단계) SELECT문을 사용한 질의 성공 시 ResultSet 반환

             반납 시 생성 역순

 

 

<Eclipse 세팅>

<기본 세팅>

 

C드라이브에 03_Jdbc-workspace 폴더 생성

 eclipse workspace를 위 경로로 지정 후 열기 

 

Java EE → SE로 전환

 

Window - Show View 탭을 통해 Navigator, Console 등 보기 편하게 세팅

 

 

<인코딩 맞추기>

 

이클립스 기본 세팅 MS949        ↔          오라클 UTF-8

UTF-8로 바꾸기

 

1) General - Workspace - Text file encoing - other - UTF-8 설정 후 Apply and Close 

 

2) General - Editors - Text Editors - Spelling - Encoding - other - UTF-8 설정 후 Apply and Close 

 

 3) 1, 2의 과정이 eclipse workspace로 설정했던 폴더의 파일 .metadata에 잘 저장되어 있을 것!

 

 

<jar 파일 추가하기>

 

 1) 프로젝트 선택 후 마우스 오른쪽 버튼 - Properties - Java Build Path - Add External JARs... 클릭

 

2) C드라이브 dev 폴더에 빼 놓았던 ojdbc6.jar 파일 불러온 뒤 Apply and Close

 

 3) Package Explorer를 통해 잘 들어왔는지 확인 가능

 

.jar 파일을 불러오지 않고 작업한다면 

ClassNotFoundException 오류가 뜸!

 

 

 

<Oracle 세팅>

<JDBC 수업용 계정 & 파일 생성>

 

1) 계정 생성, 권한 부여

CREATE USER JDBC IDENTIFIED BY JDBC;

GRANT CONNECT, RESOURCE TO JDBC;

 

 2) 계정 생성

 

 3) .sql 파일 생성

 

 

 

Oracle(= SQL developer) - JDBC 수업용 샘플 스크립트.sql

-- 회원관리 프로그램 작성을 위한 회원 테이블 구성
DROP TABLE MEMBER;

CREATE TABLE MEMBER (
    USERNO NUMBER PRIMARY KEY, -- 회원번호
    USERID VARCHAR2(15) NOT NULL UNIQUE, -- 회원아이디
    USERPWD VARCHAR2(20) NOT NULL, -- 회원비밀번호
    USERNAME VARCHAR2(20) NOT NULL, -- 회원명
    GENDER CHAR(1) CHECK(GENDER IN ('M', 'F')), -- 성별
    AGE NUMBER, -- 나이
    EMAIL VARCHAR2(30), -- 이메일
    PHONE CHAR(11), -- 휴대폰
    ADDRESS VARCHAR(100), -- 집주소
    HOBBY VARCHAR(50), -- 회원의 취미
    ENROLLDATE DATE DEFAULT SYSDATE NOT NULL -- 회원가입일 
); 

-- 회원번호 채번을 위한 시퀀스 생성
DROP SEQUENCE SEQ_USERNO;
CREATE SEQUENCE SEQ_USERNO
NOCACHE;

-- 테스트용 데이터(더미데이터) 추가
-- 2명의 회원 정보 추가
INSERT INTO MEMBER
VALUES (SEQ_USERNO.NEXTVAL
            , 'admin'
            , '1234'
            , '관리자'
            , 'F'
            , 45
            , 'admin@naver.com'
            , '01012345678'
            , '서울시 마포구'
            , '낮잠자기'
            , '2021/01/25');
            
INSERT INTO MEMBER
VALUES (SEQ_USERNO.NEXTVAL
            , 'user01'
            , 'pass01'
            , '홍길녀'
            , 'M'
            , 23
            , NULL
            , '01067891234'
            , NULL
            , '영화보기'
            , '2021/07/13');
            
-- 커밋
COMMIT;

-- 조회
SELECT * FROM MEMBER;

 

이때 나타난 맥북 오류!

 

오류 보고 -

ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다.

 

ALTER USER JDBC DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS;

 

관리자계정에서 해당 구문을 실행한 후 다시 진행하면 오류 없이 자료 삽입 잘됨

 

 

 

 

Java(= 이클립스) - 01_JDBC_Statement.project

 

MVC패턴

M: Model (데이터 담당)

V: View (화면 담당)

C: Controller (기능 담당)

웹을 만들기까지의 흐름

 

JDBC step

1. DriverManager

2. Connection 객체 생성

3. SQL문 실행

4. 결과 받기

5. 결과에 따라서 후처리 / 트랜잭션 처리

6. 처리된 결과 return