JSP(JavaServer Page)

JSP(JavaServer Page) - 13 : 데이터베이스와 JDBC

n.han 2016. 7. 28. 20:07

- JDBC API 이해 및 프로그래밍 단계


1. JDBC 프로그래밍 단계


다음은 JDBC 프로그래밍 단계와 각 단계에 대한 설명을 정리한 표이다.


JDBC 프로그래밍 단계

설명

JDBC 드라이버 로드

Class.forName();

데이터베이스 연결

conn = DriverManager.getConnection(URL, id, passwd);

// URL에는 IP, Port, 스키마가 포함

Statement 생성

1) 정적 Statement

Statement stmt = conn.createStatement()

 

2) 동적 Statement

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(1, request.getParameter(“username”);

...

Statement 전송

stmt.executeQuery(selectQuery); (ResultSetreturn)

pstmt.executeUpdate(dml); (영향 받은 row return)

결과 받기

1) QueryResultSet

while(rs.next()){

rs.getString(“username”); // DO 객체에 저장

rs.getInt(“tel”); // DO 객체에 저장

}

2) DML은 영향 받은 행의 수가 int로 return

연결 종료

conn.close();


2. 다음은 자바 빈즈와 JDBC를 활용한 예제이다.


1) VIEW.jsp


(1) ArrayList와 제네릭으로 DO 클래스를 사용하니, java.util.*와 DO 클래스를 import한다.


(2) POST 방식인 경우에만 request.setCharacterEncoding("UTF-8");한다.


(3) useBean을 사용하여 DAO 객체, DO 객체를 생성하고,


setProperty 액션을 통하여 request의 파라미터 값으로 DO 객체를 초기화한다.


또한 DAO는 scope 속성을 application 값으로 주어, 다른 클라이언트가 공통적으로 사용할 수 있게 해준다.


(4) POST 방식인 경우 request  파라미터 값으로 초기화한 DO 객체를


DAO 객체의 메서드를 활용하여 DB 작업을 수행한다.


(5) DAO 객체로 모든 행들을 SELECT하여 ArrayList<DO클래스>로


return해주는 메서드를 호출, 향상된 for문으로 출력한다.



2) JdbcTestDO.java


(1) 클래스와 외부로 사용되는 메서드는 public, 멤버 변수는 private


(2) 기본 생성자 꼭 추가


(3) getter, setter 필요



3) JdbcTestDAO.java


(1) DB작업에 필요한 Connection, PreparedStatement, Statement, ResultSet, String 객체를 멤버 변수로 선언


(2) 디폴트 생성자에서 Class.forName(jdbc_driver),


conn=DriverManager.getConnection(jdbc_url, id, passwd)로 드라이버 로드와 데이터베이스 연결을 수행


(3) insert into 테이블명 values (값1, 값2 ... )를 동적 Statement와 set 함수,


executeUpdate() 메서드를 활용하여 insert 작업 수행. 


영향 받은 행의 수가 1이므로 이를 이용하여 올바르게 insert되었는 지 점검.