본문 바로가기

Java

Java :: JDBC 프로그래밍 :: 뼈대 보기

Java DataBase Connectivity (JDBC) 프로그래밍

 

- 먼저, MySql 에서 제공하는 JDBC 드라이버를 lib 에 넣는다.(이건 Java 로 어플을 만드는 것인지, 아니면 JSP 로 웹 어플을 만드는 것인지에 따라 넣는 위치가 다르다) - 첨부파일 확인

 

- 또한 사용하려는 db 가 이미 만들어져있다고 가정한다. 여기서는 예를 들기 위해 db 의 이름을 testdb 라고 하겠다.

 

------------------------------------------------------------------------------------------------

간략히 뼈대만 적어보고자 한다. 이 뼈대를 활용하는 것도 JSP 인지 Java 클래스인지에 따라 조금씩 다르다. (혼란을 피하기 위해 설명을 덧붙이면 사용하는 뼈대는 동일하다. 단지 차이라면 클래스화 시킬 것인지 JSP 에서 바로 쓸 것인지의 차이라는 것이다... 여전히 별 도움은 안된 듯 하다..)

하지만 어차피 JSP 에서 쓸 경우라도 JSP 내에서 JDBC 프로그래밍은 Java 클래스를 사용하는 것이 대부분이므로... 이건 JSP 공부 조금 하신 분들이면 무슨 말일지 이해하시리라.. 계속 횡설수설..

----------------------------------------------------------------------------------------------------


/* Class.forName() 은 사실 파라미터로 전달되는 클래스의 인스턴스를 구하는 기능을 하는 것이 주 목적이다. 그러나 JDBC 드라이버에 해당하는 클래스들을 Class.forName 을 통해 로딩하게 되면 로딩하는 동안 자동적으로  JDBC 드라이버를 등록해 주는 부가적인 기능을 수행하기 때문에, Class.forName() 을 사용하여 JDBC 드라이버를 등록하는 기능을 하는 것이다.*/

//.1 JDBC 드라이버 로딩.

Class.forName("com.mysql.jdbc.Driver");

 

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

 

try{

// DBMS 설정. localhost 는 자기 자신의 컴퓨터를 의미. 3306 은 mysql 포트 넘버.

String jdbcDriver="jdbc:mysql://localhost:3306/testdb?" +

"useUnicode=true&characterEncoding=utf8";

String user="love";                         // db 사용가능한 계정

String passwd="123";                     // 계정의 비밀번호

 

String query="select * from order";      // order 라는 테이블이 testdb 에 이미 만들어져있다고 가정

 

// 2. 데이터베이서 커넥션 생성

conn = DriverManager.getConnection(jdbcDriver, user, passwd);

 

// 3. Statement 생성

stmt = conn.createStatement();

 

// 4. 쿼리 실행

rs = stmt.executeQuery(query);

 

// 5. 쿼리 실행 결과 출력

while(rs.next()){

....

// 실행 결과 처리

}

}

catch(SQLException ex){

...

 // 예외 처리

}

finally{

// 6. statement 종료

if(rs != null) try{ rs.close(); }catch(SQLException ex){}

if(stmt != null) try{ stmt.close(); }catch(SQLException ex){}

// 7. connection 종료

if(conn != null) try{ conn.close(); }catch(SQLException ex){} 

}