오라클과 자바를 연동하기 위한
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