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){}
}
'Java' 카테고리의 다른 글
JAVA :: exception :: throw 문이 있는 try, catch, finally (0) | 2011.05.27 |
---|---|
JAVA :: exception :: return 문이 있는 try, catch, finally (0) | 2011.05.26 |
Java :: Date / Time format 에 관하여 (0) | 2011.05.25 |