20
11. JDBC 기기

11. JDBC 기초

  • Upload
    lilia

  • View
    55

  • Download
    0

Embed Size (px)

DESCRIPTION

11. JDBC 기초. JDBC. JDBC 작성된 응용 프로그램에서 오라클 데이터와 연동하여 필요한 데이터를 데이터베이스로부터 얻어 오거나 저장하는데 사용되는 표준 데이터베이스 연동 라이브러리 JDK http://java.sun.com/javase/downloads/index.jsp JAVA 개발환경 eclipse. JDBC 란. 자바 언어를 사용한 응용 프로그램들이 DBMS 에 연결하고 데이터를 검색 , 저장 할 수 있도록 지원하는 패키지 - PowerPoint PPT Presentation

Citation preview

Page 1: 11. JDBC  기초

11. JDBC 기초

Page 2: 11. JDBC  기초

JDBC◦ 작성된 응용 프로그램에서 오라클 데이터와 연동하여 필요한 데이터를 데이터베이스로부터 얻어 오거나 저장하는데 사용되는 표준 데이터베이스 연동 라이브러리◦ JDK

http://java.sun.com/javase/downloads/index.jsp ◦ JAVA 개발환경

eclipse

JDBC

Page 3: 11. JDBC  기초

자바 언어를 사용한 응용 프로그램들이 DBMS 에 연결하고 데이터를 검색 , 저장 할 수 있도록 지원하는 패키지 SQL 문을 이용하여 사용자가 원하는 정보를 검색할 수 있도록 지원 JDBC 의 장점

◦ 개방형 패키지로 자바에서에 표준으로 제공◦ SQL 문을 지원함으로써 배우기 쉽고 사용하기 편함

JDBC 란

Page 4: 11. JDBC  기초

응용 프로그램◦ 응용 프로그램은 JDBC 메소드를 호출해서 SQL 문을 보내고

DBMS 로부터 원하는 데이터를 저장 , 검색 한다 . 드라이버 매니저

◦ 응용 프로그램에 요청하는 드라이버를 로드해 주는 역할을 한다 . 이 드라이버 매니저는 JDK 안에 표준으로 제공하고 한다 . 드라이버

◦ 드라이버는 데이터베이스에 SQL 문을 전송하고 , 검색 결과를 응용 프로그램에 전달하는 역할을 하며 , 각 DBMS 마다 자체 드라이버를 제공한다 . DBMS

◦ 데이터가 저장되어 있는 저장소의 역할을 수행한다 .

JDBC 의 구성요소

Page 5: 11. JDBC  기초

JDBC 의 구조

Page 6: 11. JDBC  기초

JDBC 드라이버 제공 회사 또는 DBMS 의 목록◦ http://java.sun.com/products/jdbc/reference/indus

trysupport/index.html

오라클용드라이버◦ 하드디스크 Orcle\product\10.2\db_1\jdbc\lib 폴더◦ JDBC Thin 드라이버 ( 파일명 ojdbc14.jar) 사용

자바로 자성된 네트워크 드라이버

오라클 드라이버

Page 7: 11. JDBC  기초

JDBC API◦ JDBC API java.sql 패키지를 import 해야 함 ◦ Java.sql 패키지에는 JDBC API 2.0 표준 기능들이 포함◦ 이외의 추가 기능들은 javax.sql 패키지에 포함

JDBC 의 이용 방법 순서◦ 사용 드라이버를 드라이버 매니저에 등록◦ 드라이버 매니저를 통한 데이터베이스 연결◦ SQL 문을 DBMS 로 전송◦ DBMS 가 SQL 문의 결과를 전송◦ DBMS 와의 연결 종료

JDBC 이용 프로그램의 구성

Page 8: 11. JDBC  기초

드라이버 매니저◦ DriverManager ◦ java.sql 을 import 하면 자동으로 생성되는 클래스 객체

드라이버 생성◦ new 메소드를 이용하여 oracle.java.jdbc.driver.OracleDriver() 인 객체 생성자를 호출

드라이버 등록◦ DriverManager.registerDriver(new oracle.jdbc.driver.Ora-

cleDriver()); 주의사항

◦ DriverManager 는 java.sql 패키지에서 제공◦ 그러나 , oracle 드라이버는 오라클사에서 제공함 . ◦ 따라서 해당 패키지 (ojdbc14.jar) 를 link 시켜 놓아야 함 .

드라이버 등록

Page 9: 11. JDBC  기초

JDBCtest 라는 프로젝트를 생성◦ 그림에서 보듯이 JRE system library 가 link 되어 있음 .

오라클 드라이버 링크

Page 10: 11. JDBC  기초

프로젝트 property 선택 , library 선택오라클 드라이버 링크

Page 11: 11. JDBC  기초

외부 Jar 파일 버튼 선택

Page 12: 11. JDBC  기초

ojdbc14 를 찾아가서 선택

최종 link 화면

Page 13: 11. JDBC  기초

드라이버 매니저를 통하여 오라클에 접속 Connection 객체

◦ DriverManager 의 getConnection() 메소드를 호출하여 생성◦ 입력 변수 : 데이타베이스의 위치인 URL, ID, Passward

Connection con = DriverManager.getConnection(“jdbc:oracle:thin:@//lo-calhost:1521/orcl”, “scott”, “tiger”)

◦ URI ( 응용과 오라클이 동일 컴퓨터일 경우 jdbc:oracle:thin:@//localhost:1521/orcl jdbc:oracle:thin 은 드라이버 @//localhost 는 오라클이 동작되고 있는 현 컴퓨터 다른 컴퓨터에서 동작할 경우 @//localhost 대신 실제 컴퓨터의 IP 주소를

@xxx.xxx.xxx.xxx 로 입력하면 됨 :1521 은 네트워크에 포트번호 : 오라클 미리 예약 /orcl 은 오라클 데이터베이스 명

데이타베이스 연결

Page 14: 11. JDBC  기초

Statement 객체◦ SQL 을 전송하기 위한 그릇◦ Connection 객체의 createStatement() 메소드를 이용하여 생성

Statement stat = con.createStatement();◦ executeQuery() 메소드

SELECT 구문을 실행 시킬 때 사용되는 메소드 실행 결과를 ResultSet 객체로 반환

◦ executeUpdate() 메소드 데이터 수정 시에 사용되는 메소드로 반환 결과로 정수값을 반환

SQL 전송과 결과 받기

Page 15: 11. JDBC  기초

ResultSet rs = stat.executeQuery(“select snum, sname from student’);◦ SELECT 문 결과는 튜플들의 집합 ResultSet

◦ ResultSet::next() Curser: 내부적으로 현재 ResultSet의 한 레코드를 가리키고 있음 결과 튜플들을 순차적으로 읽어 올 수 있도록 함 현재 상태에서 읽어올 레코드가 있으면 true를 반환하고 없으면 false를 반환 while() 이용

 while(rs.next()){ … };◦ ResultSet::getXXX()

하나의 레코드는 여러 개의 컬럼값들로 구성되어 있음 각 컬럼값을 접근 지원 XXX는 자바에서 사용되는 데이타타입 매개변수 : 컬럼명 또는 정수값 (해당 컬럼의 순서 , 1부터 시작)

while( rs.next()){int studnum = rs.getInt(1); // 또는 rs.getInt(“snum”);String studname = rs.getString(2);// 또는 rs.getString(“sname”);}

ExecuteQuery() 메소드

Page 16: 11. JDBC  기초

getByte(), getShort(), getInt(), getLong(), getFloat(), getDouble(), getBigDecimal(), getBoolean(), getString(), getBytes(), getData(), getTime(), getTimestamp(), getAsciiStream(), getUnicodeStream(), getBinaryStream(),

getObject()

주의사항 : 오라클에서 사용하는 데이터 타입과 자바의 데이터 타입이 불일치 하는 경우가 있음 올바른 getXXX() 메소드를 선택해야함 . getString() 의 경우 오라클의 기본 데이터 타입에 대하여 오류가 발생되지 않음 .

◦ 정수 값이든 실수값이던 문자열이든 모두 String 타입으로 변환해 줌 .

getXXX() 메소드

Page 17: 11. JDBC  기초
Page 18: 11. JDBC  기초

데이터 조작어를 수행시킬 때 사용되는 메소드 정수 값을 반환

◦ INSERT, UPDATE, DELETE 삽입 , 변경 , 삭제된 레코드 수를 반환

◦ CREATE, DROP, ALTER 항상 0 을 반환

executeUpdate()

Page 19: 11. JDBC  기초

실행결과

Page 20: 11. JDBC  기초

ResultSet() 을 결과가 더 이상 필요 없으면 ResultSet::close() 메소드를 사용하여 그결과를 종료

Statement 객체를 더 이상 사용하지 않을 경우에도 Statement::close() 메소드를 이용하여 종료

DBMS 와 응용 프로그램 사이의 연결을 종료할 경우에도 Connection::close() 를 이용하여 종료

응용프로그램이 종료되게 되면 자동으로 DB 와 응용사이의 모든 연결들이 종료되게 되지만 , DBMS 의 오작동 등을 방지하지 위하여 항상 close() 메소드를 이용하여 연결들을 종료하는 것이 필요

DBMS 의 연결 종료