• 검색 결과가 없습니다.

학습목표

N/A
N/A
Protected

Academic year: 2021

Share "학습목표"

Copied!
28
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

박 기 홍

(2)

학습 목표

2

2020-1학기

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

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

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

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

• 웹 쇼핑몰의 상품 조회, 등록, 수정, 및 삭제 페이지를 만듭니다.

온라인 강의 교안 작성 시

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

인터넷프로그래밍

(3)

JDBC의 개요 (1/2)

JDBC

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

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

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

JDBC(Java DataBase Connectivity)

(4)

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와 데이터베이스의 연동

(5)

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

JDBC 드라이버 로딩

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

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

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

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

(6)

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

6

2020-1학기 인터넷프로그래밍

Connection 객체 생성

• JDBC 드라이버에서 데이터베이스와 연결된 커넥션을 가져오기 위해 DriverManager 클래스의 getConnection( ) 메소드를 사용

• DriverManager 클래스로 Connection 객체를 생성할 때 JDBC 드라이버를 검색하고, 검색된 드라이버를 이용하여 Connection 객체를 생성한 후 이를 반환

(7)

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

(8)

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

8

2020-1학기 인터넷프로그래밍

DB 연결 닫기

• 데이터베이스 연결이 더 이상 필요하지 않으면 데이터베이스와 JDBC 리소스가 자동으로 닫힐 때까지 대기하는 것이 아니라 close( ) 메소드로 생성한 Connection 객체를 해제

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

(9)

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

DB 제어 확인

1 2

3 showDB.sql

이름으로 저장

4

결과 확인 5

(10)

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

10

2020-1학기 인터넷프로그래밍

JDBC API로 DB 접속

(11)

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

Statement 객체로 데이터 접근

• Statement 객체

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

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

 close( )를 사용하여 객체를 즉시 해제하지 않으면 무시할 수 없는 공간이 필요하며 페이지가 다른 작업을 수행하는 동안 멈추지 않기 때문

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

(12)

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

12

2020-1학기 인터넷프로그래밍

PreparedStatement 객체로 데이터 접근

• PreparedStatement 객체

 동적인 쿼리에 사용

 Prepared Statement 객체는 하나의 객체로 여러 번의 쿼리를 실행할 수 있으며, 동일한 쿼리문을 특정 값만 바꾸어서 여러 번 실행해야 할 때,

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

(13)

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

Statement 객체로 데이터 접근

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

(14)

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

14

2020-1학기 인터넷프로그래밍

Statement 객체로 데이터 접근

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

(15)

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

Statement 객체로 데이터 접근

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

(16)

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

16

2020-1학기 인터넷프로그래밍

Statement 객체로 Select 쿼리문 실행하기

member.sql

이름으로 저장

1

2 3

결과 확인 4

5 mysql 접속 후결과 확인

(17)

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

DB 접속을 위한

dbconn.jsp 파일 만들기

(18)

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

18

2020-1학기 인터넷프로그래밍

insert01.jsp

(19)

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

Insert01_process.jsp

(20)

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

20

2020-1학기 인터넷프로그래밍

(21)

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

PreparedStatement 객체로 데이터 접근

• PreparedStatement 객체

 동적인 쿼리에 사용

 Prepared Statement 객체는 하나의 객체로 여러 번의 쿼리를 실행할 수 있으며, 동일한 쿼리문을 특정 값만 바꾸어서 여러 번 실행해야 할 때,

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

(22)

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

22

2020-1학기 인터넷프로그래밍

PreparedStatement 객체로 데이터 접근

(23)

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

PreparedStatement 객체로 데이터 접근

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

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

(24)

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

24

2020-1학기 인터넷프로그래밍

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

PreparedStatement 객체로 데이터 접근

(25)

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

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

PreparedStatement 객체로 데이터 접근

(26)

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

26

2020-1학기 인터넷프로그래밍

insert02.jsp

(27)

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

Insert02_process.jsp

(28)

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

28

2020-1학기 인터넷프로그래밍

참조

관련 문서

데이터마이닝 (Data Mining).. • 데이터 마이닝의 활용 : 예) 고객 데이터를 분석하여 수익성 있는 고객을 찾아내어 일대일 마케팅을

국가적 공간들은

ALTER TABLE member add (tel varchar2(30) NOT NULL) ALTER TABLE member modify (username varchar2(10)) ALTER TABLE member DROP CONSTRAINT member_pk.. id username dept

이제는 이러한 문화를 외래문화 로 치부할 것이 아니라, 동양 공통의 문화로서 적극적으로 주도해나갈 필요가 있다... 이제 더 이상 그리스∙로마 신화가 단지

더 이상 점수는 입력되지 않는다..  마지막에

그 당시에는 수입자동차 세금이 지금보다 훨씬 많았었기에 상당한 돈이 소요되었 다. 왜 내가 우울증에 걸렸을까? 더 이상 갖고 싶은 것이 없어졌던 것이다.. 중요한 것은,

 클래스는 필드와 메소드로

 Class는 스스로 객체 생성 방법을 가지고 있어야 한다... 더 이상