본문 바로가기

IT&코딩/JSP

JSP - 8일차 (JDBC)

728x90
반응형

■ JDBC란 

 

JDBC(Java DataBase Connectivity)는 데이터베이스에 연결 및 작업을 하기 위한 자바 표준 인터페이스이다. 자바는 DBMS(Oracle, MySQL, MongoDB 등)의 종류에 상관없이 하나의 JDBC API를 이용해서 데이터베이스 작업을 처리한다.

 

JDBC는 DB에 접근해서 CRUD를 효율적이게 할 수 있게 하는 메소드를 제공하며 쉽게 프로그래밍 할 수 있게 도와준다.

 

 

□ JDBC 연결 순서 

 

 

□ Statement 객체

 

 

□ excuteQuery() / ResultSet

 

excuteQuery() 메소드는 데이터베이스 검색 전용 메소드인 select문을 실행시킬 때 사용하며 결과값을 ResultSet으로 받는다. select문을 수행하고 반환된 값을 레코드 셋이라고 부르며 레코드셋은 여러 개의 로우(행)로 구성되어 있다. 여러 개의 로우(행)를 한꺼번에 처리할 수는 없고 한 개의 행 단위로 처리할 수 있다.

 

 

□ excuteUpdate() 메소드

 

데이터베이스에 변경을 주는 SQL문 (INSERT와 UPDATE, DELETE, CREATE, DROP, ALTER)일 경우에 사용한다.

 

DML(Data Manipulation Language 데이터 조작어)인 INSERT와 UPDATE, DELETE문인 경우에는 관련된(추가, 변경, 삭제) 레코드의 수를 반환하며, DDL(Data Definition Language 데이터 정의어)인 CREATE와 DROP, ALTER문인 경우에는 0을 반환한다.

 

□ DAO와 DTO

 

1. DAO

 

Data Access Object의 약자로 데이터베이스의 data에 접근하기 위한 객체. 데이터베이스에 접속해서 데이터 추가, 삭제, 수정 등의 작업을 하는 클래스이다. 데이터베이스 접근을 하기 위한 로직과 비지니스 로직을 분리하기 위해 사용한다.

 

2. DTO

 

Data Transfer Object는 계층간 데이터 교환을 위한 자바빈즈. DAO 클래스를 이용하여 데이터베이스에서 데이터를 관리할 때 일반적인 변수에 할당하여 작업할 수도 있지만, 해당 데이터의 클래스를 만들어 사용한다.

 

DTO는 로직을 가지지 않는 순수한 데이터 객체이고 getter, setter 메소드만 가진 클래스를 의미한다.

 

□ PreparedStatement

 

Statement는 상속받은 인터페이스로 SQL 구문을 실행하는 기능의 객체이다.

 

preparedStatement는 객체 생성시에 지정된 SQL 명령어만을 실행할 수 있다. (컴파일시에 실행할 SQL 구문이 지정되므로 실행시에 SQL 구문이 변결될 수 없다. - 이는 보안상 유리하다 -)

 

SQL문에서 변수가 들어갈 자리는 '?'로 표시한다.

 

□ 커넥션 풀 (DBCP)

 

DB를 다룰 때, 사용한 Connection 객체, Statement 객체 같은 자원들을 효율적으로 사용하기 위한 방법이다.

 

웹서버가 DB에 접속해야 할 때, 너무 많은 요청이 있을 경우 과부하가 있을 수 있다. 그래서 매번 해야 하는 작업인 Connection을 미리 만들어놓고 필요할 때마다 가져다 쓰는 것이다.

 

Connection Pool은 톰캣 컨테이너에 미리 만들어놓고, 필요할 때마다 빌려서 사용하고 반환해주는 것이다.

 


■ 실습 1

 

<Oracle SQL Developer에 KGMember 테이블 생성>

 

 

<src/main/java 폴더에 DTO, DAO 클래스 생성>

 

1. KGMemberDTO.java

 

 

2. KGMemberDAO.java

 

 

<웹브라우저 관리하기>

 

1. joinForm.html

 

회원가입 입력폼을 만든다.

입력받은 데이터를 joinCheck.jsp로 전송

 

 

2. joinCheck.jsp

 

넘어온 데이터를 받고 해당 변수에 저장하는 작업을 진행한다.

 

insert가 성공하면 joinResult.jsp로 이동.

실패하면 다시 회원가입 폼으로 이동.

 

3. joinResult.jsp 

 

회원가입 성공 결과창 띄우기.

 

 

4. memberList.jsp

 

회원목록 보기.

 


 

■ 실습 2

 

<Servers에 context.xml에 리소스를 입력하여 작업을 간편하게 한다.>

 

 

<실습1과 같은 Oracle SQL Developer에 KGMember 테이블을 참고하여 DAO, DTO 파일 만들기>

 

1. ITMemberDTO.java

 

 

2. ITMemberDAO.java

 

 

<웹브라우저 관리하기>

 


 

■ 실습 3

 

<KGMember 테이블을 사용하여 웹브라우저 심화>

 

1. joinForm.html

 

2. joinCheck.jsp

 

자바빈을 이용하여 데이터 입력

 

 

3. memberList.jsp

 

 

4. memberDelete.jsp

 

 

728x90
반응형

'IT&코딩 > JSP' 카테고리의 다른 글

JSP - 10일차 (EL & JSTL)  (0) 2022.11.30
JSP - 9일차 (JDBC2)  (0) 2022.11.30
JSP - 7일차 (데이터베이스)  (0) 2022.11.25
JSP - 6일차 (Java Server Page)  (0) 2022.11.20
JSP - 5일차 (서블릿)  (0) 2022.11.14