본문 바로가기

Prog.Lang. or Query/Java

JDBC, JDBC Driver, MySql 연동 테스트, 한글처리(톰캣)


▣ JDBC
  - JDBC는 데이터베이스를 다루기 위한 자바 API(Application Programming Interface)이다
  - 자바를 기반으로 하는 프로그램을 작성할 때 프로그래머에게 데이터베이스를 쉽게 다룰수 있게
    합니다.
  - JDBC를 통해서 어떠한 DBMS일지라도 질의문을 던져서 데이터를 가져올 수 있습니다.


1. JDBC Driver
  -  JDBC는 JDBC 인터페이스와 JDBC 드라이버로 구성
  -  JDBC 인터페이스 : 데이터베이스와 연동되는 프로그램을 작성할 수 있게 하는 도구라 할 수 있습니다.
  -  JDBC 드라이버 : JDBC 인터페이스를 구현하여 실제로 DBMS를 작동 시켜서 질의를 던지고 결과를
                     받습니다.

 

      자바 프로그램       <------>         JDBC           <------>           DBMS

      (JSP, Server 등)                 JDBC 인터페이스
                                            ↑                       (Oracle, MS_SQL, MySQL 등)  
                                            ↓                    
                                       JDBC 드라이버 


2  JDBC Driver Type (4가지 종류)
  - JDBC-ODBC 브리지+ODBC 드라이버(JDBC-ODBC Bridge Plus ODBC Drive)
  - 네이티브-API 부분적인 자바드라이버(Native-API Partly-Java Driver)
  - JDBC-Net 순수 자바 드라이버(JDBC-Net Pure Java Driver)
  - 네이티브-프로토콜 순수 자바 드라이버(Native-Protocol Pure Java Driver) =>우리가 사용할 타입

 

3. JDBC Driver 설치
  - http://www.mysql.com
  - MySQL Connector/J 링크를 클릭하고 zip파일을 다운 받아 압축을 풉니다.
  - "mysql-connector-java-3.1.7-bin.jar" 파일을 복사하여 "C:j2sdk1.4.2_07jrelibext"에 갖다 붙입니다.
  - "mysql-connector-java-3.1.7-bin.jar" 파일을 복사하여 "C:jsp1200 esin-2.1.12lib"에 갖다 붙입니다.
  - "mysql-connector-java-3.1.7-bin.jar" 파일을 복사하여 "C:Tomcat_4.1commonlib"에 갖다 붙입니다.


   
4. JDBC를 통한 Mysql과의 연동 테스트
 
>>DriverTest.java

import java.sql.*;

public class DriverTest{

public static void main(String args[]){
 Connection con;

  try{
  Class.forName("org.gjt.mm.mysql.Driver").newInstance();
  con=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydb", "root", "");
  System.out.println("Success");
 }
 catch(SQLException ex){ System.out.println("SQLException" + ex);}
 catch(Exception ex){ System.out.println("Exception:" + ex);}
}
}

 

 

▣ 데이터베이스 조작을 위한 자바 라이브러리

1. JDBC API
  - java.sql 패키지에 담겨져 있습니다.
  - Driver : 모든 드라이버 클래스들이  구현해야 하는 인터페이스
  - DriverManager : 드라이버를 로드하고 데이터베이스에 연결할 수 있게 합니다.
  - Connection : 특정 데이타베이스와의 연결을 말합니다.
  - Statement : SQL문을 실행해 작성된 결과를 돌려줍니다.
  - PreparedStatement : 사전에 컴파일된 SQL문을 실행
  - ResultSet : SQL문에 대한 결과를 얻어냅니다.


2. JDBC에서의 한글처리
  - MySql 드라이버의 JDBC URL의 기본구조

     jdbc:mysql://[hostname][:port]/dbname[?param1=value1][&param2=value2]....

  - MySQL과 Tomcat연동에서 있어서 한글이 깨지는 경우는 아래와 같이 사용한다

    ...

    Connection C = DriverManager.getConnection(

        "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=euc-kr");

     ....

  
     
    <<JDBC URL Parameter>>

    파라미터 이름                  사용 용도                               기본설정값

     user                   데이타베이스 사용 user 지정                        none

     password               user의 패스워드 지정                               none

     autoReconnect          연결이 해제되었을때 자동 재연결 설정 여부          false

     maxReconnects          autoReconnect가 true로 설정되었을 때 재연결
                           까지에 대한 설정(몇 번의 연결시도를 할 것인지)      3

     initialTimeout         autoReconnect가 true로 설정되었을 때 재연결까지
                           대기 시간설정(초)                                   2

     maxRows                반환받는 최대 행 개수 지정(0이면 모든 행 반환)      0

     useUnicode             유니코드 무자 인코딩 사용 여부 지정                false

     charterEncoding        useUnicode가 true로 설정되었을 때, 인코딩 종류 지정  none