▣ 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][¶m2=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