PowerPoint 프레젠테이션

Download Report

Transcript PowerPoint 프레젠테이션

자바 5.0 프로그래밍
chapter 16 :
JDBC
학습목표
데이터베이스 란?
관계형 DBMS
Oracle 9i 설치
SQL
JDBC API
ConnectionPool
DAO ( Data Access Object )
TO ( Transfer Object )
데이터베이스
정의
여러 사람에 의해 사용될 목적으로 관리되는 정보집합을 의미.
- 은행의 고객 데이터베이스
- 도서관에서의 도서 데이터베이스
DBMS ( Database Management System)
데이터베이스를 효율적으로 관리할 수 있는 시스템을 의미.
데이터베이스를 생성, 검색, 삭제 , 변경할 수 있어야 된다.
DBMS 종류
계층형, 네트워크용 , 관계형등으로 구분.
 관계형 DBMS
일반적으로 많이 사용되는 DBMS이다.
Oracle, DB2, MS-SQL, Infomix 등이 있다
관계형 DBMS ( Relational DBMS )
응용프로그램1
응용프로그램2
관계형
DBMS
데이터베이스
응용프로그램3
특징
확장이 용이하다.
응용 프로그램들을 변경하지 않고도 새로운 데이터 항목을 데이
터베이스에 추가할 수 있다는 장점이 있다.
관련된 데이터를 테이블 형태로 나타내어 저장하는 방법
기본키 와 외부키
기본키 ( Primary Key)
테이블의 각 행을 다른 행과 구분해주는 역할을 하는 필드를 의미
필드값은 반드시 유일한 특성과 값을 가져야 한다.
NOT NULL 제약조건과 UNIQUE 제약조건을 포함해야 한다.
외부키 ( Foreign Key)
2개 이상의 테이블관계를 표현할 때 사용된다.
외부키는 테이블내의 한 열의 필드인 동시에 다른 테이블의 기본키인
열의 필드를 의미한다.
FK
PK
PK
Oracle 9i 설치하기
Oracle DBMS 설치
1. Oracle9i 버전 다운받기
http://www.oracle.com/technology/software/products/oracle9i/index.html
Oracle DBMS 설치
Oracle DBMS 설치
2. 환경변수 PATH 설정값 변경하기
환경변수 PATH 값이 Oracle을 설치하면 변경된다.
Oracle 내의 JDK1.3 버전으로 PATH 설정이 되어있다.
PATH = C:\oracle\ora92\bin;C:\Programiles\Oracle\jre\1.3.1\bin;C:\Program
Files\Java\jdk1.6.0\bin
PATH = C:\Program Files\Java\jdk1.6.0\bin;C:\oracle\ora92\bin
Oracle DBMS 설치
3. Oracle 접속하기 ( scott / tiger )
Command Line에서 접속하기
프로그램에서 접속하기
Oracle DBMS 설치
Oracle DBMS 설치
브라우저에서 접속하기

제어판>관리도구>서비스 에서
OracleOraHome92HTTPServer 상태를 시작으로 설정한다.
Oracle DBMS 설치
http://localhost:7778/isqlplus
Oracle DBMS 설치
4. SQL문 실행하기
select * from tabs;
SQL ( Structured Query Language )
정의
RDBMS 의 표준언어이다.
DBMS 종류에 상관없이 검색, 저장, 관리할 수 있는 표준언어이다.
종류
DDL ( Data Definition Language)


데이터의 구조를 정의
테이블를 생성, 삭제 , 수정
DML ( Data Manipulation Language)

데이터의 검색, 수정, 변경 , 삭제
DCL ( Data Control Language)

데이터베이스의 사용권한을 정의
SQL ( Structured Query Language )
DDL
DML
DCL
CREATE 문
정의
CREATE 문은 데이터베이스로부터 테이블을 생성한다.
CREATE table 테이블명 (
필드명1 타입,
필드명2 타입
);
create table member (
name varchar2( 10 ),
height varchar2( 10 ),
weight varchar2( 10 ),
age number( 5 ),
sex char( 5 )
);
CREATE 문
INSERT 문
정의
INSERT 문은 데이터베이스로부터 새로운 레코드를 입력할 때 사용.
문자형인 경우에는 반드시 ‘’를 사용한다.
INSERT INTO 테이블명[(컬럼1[, 컬럼2, … , 컬럼N ])]
VALUES(값1[, 값2, … , 값N]);
또는
INSERT INTO 테이블명
VALUES(값1[, 값2, … , 값N]);
INSERT INTO member ( name, height, weight, age , sex ) VALUES ( ‘홍길동’,’175’,’67’,24,’남’);
INSERT INTO member VALUES ( ‘임꺽정’,’188’,’78’,45,’남’);
INSERT 문
SELECT 문
정의
SELECT 문은 데이터베이스로부터 저장되어 있는 데이터를 검색.
SELECT [ALL | DISTINCT] {*|컬럼,…}
FROM 테이블 명
[WHERE 조건]
[GROUP BY {컬럼,…}]
[HAVING 조건]
[ORDER BY {컬럼,…} [ASC, DESC]]
SELECT * FROM member;
SELECT name FROM member;
SELECT * FROM member WEHRE name =‘홍길동’;
SELECT * FROM member ORDER BY height desc;

레코드셋( record set)
SELECT 문
UPDATE 문
정의
UPDATE문은 기존 레코드의 필드값을 변경할 때 사용한다.
UPDATE 테이블 명
SET 컬럼1 = 값1 [ , 컬럼2 = 값2 , … , 컬럼N = 값N]
[WHERE 조건];
UPDATE member SET sex =‘여’ WHERE name = ‘홍길동’;
UPDATE 문
DELETE 문
정의
DELETE 문은 기존 레코드를 삭제할 때 사용한다.
DELETE
FROM 테이블 명
[WHERE 조건];
DELETE FROM member WHERE name = ‘홍길동’;
DELETE 문
JDBC API
JDBC ( Java Database Connectivity )
정의
DBMS 종류에 상관없이 데이터베이스를 연동하기 위한 API.

데이터베이스 접근시 문제점
DBMS 종류가 다양하고, 구조와 특징이 모두 틀리다.
DBMS 종류만큼 데이터베이스 접근방법을 모두 알아야 한다.
문제점 해결
모든 DBMS에서 공통적으로 사용할 수 있는 인터페이스와 클래
스를 정의하고 실제 구현은 DBMS vendor에게 구현하도록 함.
DBMS vendor에서 구현한 클래스집합을 ‘드라이버’ 라고 한다.
JDBC ( Java Database Connectivity )
JDBC API 와 드라이버와의 관계
Java
JDBC
App. 인터페이스
Oracle용 드라이버
Oracle
DB2용 드라이버
DB2
Sybase용 드라이버
Sybase
JDBC을 이용한 데이터베이스 연동순서
1. DBMS 을 설치한다.
2. 드라이버를 클래스패스에 설정한다.
DBMS을 설치한 경우
JDBC을 이용한 데이터베이스 연동순서
DBMS을 설치하지 않은 경우
JDBC을 이용한 데이터베이스 연동순서
JDBC을 이용한 데이터베이스 연동순서
3. 자바 애플리케이션 작업.
1)
2)
3)
4)
5)
6)
7)
8)
9)
import java.sql.*; 와 4가지 설정값 얻기
드라이버 로딩
Connection 맺기
Statement 작성
Query문 작성
Query문 전송
SELECT 문인 경우 결과값(ResultSet) 얻기
결과값 출력
close 작업
JDBC을 이용한 데이터베이스 연동순서
JDBC을 이용한 데이터베이스 연동순서
1. java.sql 패키지 import 한다.
JDBC을 이용한 데이터베이스 연동순서
2. 데이터베이스 연동하기 위한 4가지 정보
4가지 정보
1.
드라이버명: oracle.jdbc.driver.OracleDriver
2.
URL : jdbc:oracle:thin:@ip번호:port번호:SID
3.
사용자아이디 : scott
4.
비밀번호 : tiger
JDBC을 이용한 데이터베이스 연동순서
3. 드라이버 로딩하기
JDBC을 이용한 데이터베이스 연동순서
4. Connection 얻기
JDBC을 이용한 데이터베이스 연동순서
5. Statement 생성
JDBC을 이용한 데이터베이스 연동순서
6. Query문 작성
JDBC을 이용한 데이터베이스 연동순서
7. Query문 전송
INSERT, UPDATE , DELETE 은
executeUpdate 메소드로 전송한다.
SELECT 문은 반드시executeQuery
메소드로 전송한다.
그리고 결과값( record set )을
ResultSet 객체로 받는다.
JDBC을 이용한 데이터베이스 연동순서

ResultSet 객체
SELECT문에 대한 결과를 처리할 수 있는 객체이다.
executeQuery 메소드의 결과로 ResultSet 객체를 받는다.
Record Set 을 객체화한 API이다.
next() 메소드와 gettter 메소드가 제공된다.
rs.next()
rs.getString(“name”)
rs.getInt(“age”)
JDBC을 이용한 데이터베이스 연동순서
8. ResultSet 객체 접근
JDBC을 이용한 데이터베이스 연동순서
9. close 하기
PreparedStatement
특징
Statement 보다 효율적이다.
Statement 처럼 매번 컴파일하지 않고 값만 바인딩 시킨다.
용도
반복처리 작업시 효율적이다.
사용
PreparedStatement pstmt = con.prepareStatement("INSERT INTO member VALUES ( ?,?,?,?,? )");
pstmt.setString(1,"이순신");
pstmt.setString(2,”178”);
pstmt.setString(3, “67”);
pstmt.setInt( 4, 23 );
pstmt.setString( 5 , “남”);
pstmt.executeUpdate();
pstmt.setString(1,"유관순");
pstmt.setString(2,”167”);
pstmt.setString(3,”45”);
pstmt.setInt(4,18);
pstmt.setString(5,"여");
pstmt.executeUpdate();
PreparedStatement
ConnectionPool
정의
데이터베이스와 연결된 Connection 객체들을 포함하고 있는 객체.
 자바애플리케이션과 데이터베이스 연동 문제점
Connection 맺는 비용이 가장 비싸다.
미리 다수의 Connection를 맺고 자바애플리케이션에서
메소드 호출로 빌려 사용한다.
실제 사용 API
javax.sql.DataSource 을 실제로 많이 사용한다.
DAO ( Data Access Object)
정의
데이터베이스 작업을 전담하는 객체.
 GUI 와 데이터베이스 연동시 문제점
GUI 와 데이터베이스 연동코드가 같은 클래스에 위치
GUI 와 별개의 클래스를 만들어 데이터베이스연동만 전담.
특징
유지보수가 쉽다.
재사용성이 높아진다.
DAO ( Data Access Object)
TO ( Transfer Object )
정의
데이터베이스 필드들과 일치하는 멤버변수들로 정의된 객체.
용도
데이터들을 다른 메소드 또는 원격지로 전송시 묶음으로 전송
하면 전송하면 효율적이다.
일반적으로 TO 객체저장후 Collection에 다시 저장한다.
사용방법
직렬화 객체로 작성
setter 메소드와 getter 메소드로 구성된다.
TO ( Transfer Object )
TO ( Transfer Object )
Oracle
요약 정리
JDBC
SQL
ConnectionPool
DAO
TO