본문 바로가기

Web Programming

JDBC 연동을 위한 준비!

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
기본적으로 방명록 CRUD를 구현하기 위해서.. GuestBean Class 를 만들었습니다. 요놈은 실질적으로 비즈니스 로직을 처리하는 메서드들을 가지고 있어서, 가장 중요한 클래스라고 할 수 있습니다.

void connect() : 데이터베이스 연결 처리
void disconnect() : 데이터베이스 연결 해제
boolean insertDB(GuestBook guestbook) : 게시물 삽입
boolean updateDB(GuestBook guestbook) : 게시물 수정
boolean deleteDB(int gb_id) : 게시물 삭제
GuestBook getDB(int gb_id) : 한 개 게시물 읽기
ArrayList getDBList() : 여러 개 게시물 읽기

이런 중요한 기능을 합니다.. 데이터베이스와의 연결을 주로 하는 클래스라고 보면됩니다. 이전에 만들어 놓았던 GuestBook 클래스에게 생명을 불어 넣는 그런 클래스라고 보시면 무방하겠습니다.

먼저 가장 중요한건 데이터베이스에 연결을 하고 해제를 하는 메소드 입니다. CRUD를 구현하기 위해서 꼭 필요한 메소드들인데요.. 자세히 한번 살펴보도록 할까요~~?

/** DB 접속에 필요한 모든 자원들. */

          Connection conn = null;

          PreparedStatement pstmt = null;

          String driver = "oracle.jdbc.driver.OracleDriver";

          String url = "jdbc:oracle:thin:@127.0.0.1:1521";

          /**

          * 데이터베이스에 접속하여 커넥션 객체를 초기화 하고 명령을 보낼 준비를 하도록 한다. DB 관련된 모든 과정에 항상 필요하다.

          */

          void connect() {

                    try {

                               Class.forName(driver);

                               /* 커넥션 객체를 초기화 한다. getConnection이라는 스태틱 메소드를 사용한다. */

                               conn = DriverManager.getConnection(url, "hansan84", "0000");

                    } catch (ClassNotFoundException e) {

                               e.printStackTrace();

                    } catch (SQLException e) {

                               e.printStackTrace();

                    }

          }

          /**

          * 데이터 베이스에 접속한 상태를 모두 해제 하고 커넥션 객체와 스테이트먼트 객체를 닫는 역할을 한다. DB 관련된 모든 과정에 항상

          * 필요하다.

          *

          */

          void disconnect() {

                    /* PreparedStatement 객체나 Connection 객체 둘다 비어있지 않은 경우에는 반드시 닫아준다. */

                    if (pstmt != null) {

                               try {

                                         pstmt.close();

                               } catch (SQLException e) {

                                         e.printStackTrace();

                               }

                    }

                    if (conn != null) {

                               try {

                                         conn.close();

                               } catch (SQLException e) {

                                         e.printStackTrace();

                               }

                    }

          }

부연 설명을 최소화 하기위해서.. 또 나중에 코드를 알아보기 위해서.. ^^ 주석을 꼼꼼히 달아봤습니다. SQL 패키지에서 제공하는 세가지 Connection, Statement, ResultSet 요 녀석들이 기본이 됩니다. 하지만 여기에서는 PreparedStatement 를 사용했습니다. 요건 SQL문을 미리 만들어 놓고 '?' 라는 문자를 이용해서 변수처럼 사용하는 방식인데요.. 한번 예를 보시면 쉽게 알 수 있습니다.

자 그럼 이렇게 만들고 시작해볼까요~~?