PDF문서인터넷프로그래밍 (15주차 1차시-2차시).pdf

닫기

background image

목원대학교 융합컴퓨터미디어학부 교수

박 기 홍


background image

학습 목표

2

2020-1학기

• JDBC의 개념을 이해합니다.

 JDBC 드라이버 로딩 및 DBMS 접속 방법을 익힙니다.

 데이터베이스 쿼리 실행 방법을 익힙니다.

 쿼리문 실행 결과 값을 가져오는 방법을 익힙니다.

• 웹 쇼핑몰의 상품 조회, 등록, 수정, 및

삭제 페이지를 만듭니다.

본 온라인 강의 교안 작성 시

한빛아카데미에서 제공하는 강의 교안을 참고 하였습니다.

인터넷프로그래밍


background image

JDBC의 개요 (1/2)

3

2020-1학기

인터넷프로그래밍

JDBC

• 자바/JSP 프로그램 내에서 데이터베이스와 관련된 작업을 처리할 수 있도록

도와주는 자바 표준 인터페이스

• 관계형 데이터베이스 시스템에 접근하여 SQL 문을 실행하기 위한 자바 API (Lib.)

• JDBC API를 사용하면 DBMS의 종류에 상관없이 데이터베이스 작업을 처리할 수 있음

JDBC(Java DataBase Connectivity)


background image

JDBC의 개요 (2/2)

4

2020-1학기

인터넷프로그래밍

JSP + DB with JDBC

java.sql.* 패키지 임포트,

JDBC 드라이버 로딩, 

데이터베이스 접속을 위한 Connection 객체 생성, 

쿼리문을 실행하기 위한 Statement/PreparedStatement/CallableStatement객체 생성, 

쿼리 실행, 

쿼리 실행의 결과 값(int, ResultSet) 사용, 

사용된 객체(ResultSet, Statement/PreparedStatement/CallableStatement, Connection) 종료

JDBC를 사용한 JSP와 데이터베이스의 연동


background image

JDBC 드라이버 로딩 및 DBMS 접속 (1/6)

5

2020-1학기

인터넷프로그래밍

JDBC 드라이버 로딩

• JDBC 드라이버 로딩 단계에서는 드라이버 인터페이스를 구현하는 작업

• Class.forName( ) 메소드를 이용하여 JDBC 드라이버를 로딩

• JDBC 드라이버가 로딩되면 자동으로 객체가 생성되고, DriverManager 클래스에 등록

JDBC 드라이버 로딩은 프로그램 수행 시 한 번만 필요


background image

JDBC 드라이버 로딩 및 DBMS 접속 (2/6)

6

2020-1학기

인터넷프로그래밍

Connection 객체 생성

• JDBC 드라이버에서 데이터베이스와 연결된 커넥션을 가져오기 위해 DriverManager

클래스의 getConnection( ) 메소드를 사용

• DriverManager 클래스로 Connection 객체를 생성할 때 JDBC 드라이버를 검색하고, 

검색된 드라이버를 이용하여 Connection 객체를 생성한 후 이를 반환


background image

JDBC 드라이버 로딩 및 DBMS 접속 (3/6)

7

2020-1학기

인터넷프로그래밍


background image

JDBC 드라이버 로딩 및 DBMS 접속 (4/6)

8

2020-1학기

인터넷프로그래밍

DB 연결 닫기

• 데이터베이스 연결이 더 이상 필요하지 않으면 데이터베이스와 JDBC 리소스가 자동으로

닫힐 때까지 대기하는 것이 아니라 close( ) 메소드로 생성한 Connection 객체를 해제

• 일반적으로 데이터베이스 리소스를 사용하지 않기 위해 사용을 끝내자마자

리소스를 해제하는 것이 좋음


background image

JDBC 드라이버 로딩 및 DBMS 접속 (5/6)

9

2020-1학기

인터넷프로그래밍

DB 제어 확인

1

2

3

showDB.sql

이름으로 저장

4

5

결과 확인


background image

JDBC 드라이버 로딩 및 DBMS 접속 (6/6)

10

2020-1학기

인터넷프로그래밍

JDBC API로 DB 접속


background image

데이터베이스 쿼리 실행 (1/17)

11

2020-1학기

인터넷프로그래밍

Statement 객체로

데이터 접근

• Statement 객체

 정적인 쿼리에 사용하며, 하나의 쿼리를 사용하고 나면 더는 사용할 수 없음

 하나의 쿼리를 끝내면 close( )를 사용하여 객체를 즉시 해제해야 함

 close( )를 사용하여 객체를 즉시 해제하지 않으면 무시할 수 없는 공간이 필요하며

페이지가 다른 작업을 수행하는 동안 멈추지 않기 때문

 복잡하지 않은 간단한 쿼리문을 사용하는 경우에 좋음


background image

데이터베이스 쿼리 실행 (10/17)

12

2020-1학기

인터넷프로그래밍

PreparedStatement

객체로 데이터 접근

• PreparedStatement 객체

 동적인 쿼리에 사용

 Prepared Statement 객체는 하나의 객체로 여러 번의 쿼리를 실행할 수 있으며, 

동일한 쿼리문을 특정 값만 바꾸어서 여러 번 실행해야 할 때, 

매개변수가 많아서 쿼리문을 정리해야 할 때 유용


background image

데이터베이스 쿼리 실행 (2/17)

13

2020-1학기

인터넷프로그래밍

Statement 객체로

데이터 접근

• executeQuery( ) 메소드로 데이터 조회하기


background image

데이터베이스 쿼리 실행 (3/17)

14

2020-1학기

인터넷프로그래밍

Statement 객체로

데이터 접근

• executeUpdate( ) 메소드로 데이터 삽입, 수정, 삭제하기


background image

데이터베이스 쿼리 실행 (4/17)

15

2020-1학기

인터넷프로그래밍

Statement 객체로

데이터 접근

• executeUpdate( ) 메소드로 데이터 삽입, 수정, 삭제하기


background image

데이터베이스 쿼리 실행 (5/17)

16

2020-1학기

인터넷프로그래밍

Statement 객체로

Select 쿼리문 실행하기

member.sql

이름으로 저장

1

2

3

결과 확인

4

5

mysql 접속 후

결과 확인


background image

데이터베이스 쿼리 실행 (6/17)

17

2020-1학기

인터넷프로그래밍

DB 접속을 위한

dbconn.jsp 파일 만들기


background image

데이터베이스 쿼리 실행 (7/17)

18

2020-1학기

인터넷프로그래밍

insert01.jsp


background image

데이터베이스 쿼리 실행 (8/17)

19

2020-1학기

인터넷프로그래밍

Insert01_process.jsp


background image

데이터베이스 쿼리 실행 (9/17)

20

2020-1학기

인터넷프로그래밍


background image

데이터베이스 쿼리 실행 (10/17)

21

2020-1학기

인터넷프로그래밍

PreparedStatement

객체로 데이터 접근

• PreparedStatement 객체

 동적인 쿼리에 사용

 Prepared Statement 객체는 하나의 객체로 여러 번의 쿼리를 실행할 수 있으며, 

동일한 쿼리문을 특정 값만 바꾸어서 여러 번 실행해야 할 때, 

매개변수가 많아서 쿼리문을 정리해야 할 때 유용


background image

데이터베이스 쿼리 실행 (11/17)

22

2020-1학기

인터넷프로그래밍

PreparedStatement

객체로 데이터 접근


background image

데이터베이스 쿼리 실행 (12/17)

23

2020-1학기

인터넷프로그래밍

PreparedStatement

객체로 데이터 접근

• executeQuery( ) 메소드로 데이터 조회하기

 executeQuery( ) 메소드는 동적인 SELECT 쿼리문을 통해 데이터를 검색하는 데 사용


background image

데이터베이스 쿼리 실행 (13/17)

24

2020-1학기

인터넷프로그래밍

• executeUpdate( ) 메소드로 데이터 삽입, 수정, 삭제하기

PreparedStatement

객체로 데이터 접근


background image

데이터베이스 쿼리 실행 (14/17)

25

2020-1학기

인터넷프로그래밍

• executeUpdate( ) 메소드로 데이터 삽입, 수정, 삭제하기

PreparedStatement

객체로 데이터 접근


background image

데이터베이스 쿼리 실행 (15/17)

26

2020-1학기

인터넷프로그래밍

insert02.jsp


background image

데이터베이스 쿼리 실행 (16/17)

27

2020-1학기

인터넷프로그래밍

Insert02_process.jsp


background image

데이터베이스 쿼리 실행 (17/17)

28

2020-1학기

인터넷프로그래밍