포스팅에 앞서 이 글은 MySQL을 기준으로 포스팅했으며, cdspacenoob님의 포스팅을 참조했습니다.
JDBC는 Java에서 Database를 사용할 수 있게 해주는 API로 JDBC : Java DataBase Connectivity의 약자이다.
Database 종류와 상관없이 사용할 수 있다.
JDBC를 사용하기 위해서는 JDBC 드라이버를 설치해야한다.
JDBC 드라이버는 각 DB에 맞는 것을 찾아 설치하면 된다.
Class.forName(DB에 맞는 Driver)를 사용해 로딩한다.JDBC의 동작 순서는 아래 순서대로 작동한다.
DB Driver를 Java 메모리 상으로 load : Class.forName(driver)
Driver를 통해 Java와 DB를 연결(connection)한다.
con = DriverManager.getConnection(url, Id, password)연결이 됐다면, statement 또는 preparedstatement로 쿼리문을 전송한다.
stmt = con.createStatement()pstmt = con.prepareStatement()쿼리 작성 String으로 선언하고, 변수에 입력
String sql = "SELECT * FROM book"작성한 쿼리 전송
res = stmt.executeQuery(sql)쿼리문이 SELECT면 ResultSet으로 받고, 그 외에는 int로 받는다. (반환 타입)
쿼리를 다 사용했다면, ResultSet부터 역순으로 리소스 close()를 진행한다.
가장 먼저 JDBC Driver인 Connector를 설치해야한다.
일반적으로 구글에 MySQL JDBC라고 검색하면 바로 나온다.
굳이 설치하지 않고 Platform Independent를 선택해 zip파일로 다운받았다.

압출을 풀고 나오는 .jar파일을 이클립스에 연결시켜준다.
순서가 좀 많이 길다
프로젝트 우클릭 >> properties >> Java Build Path >> 상단에 Libraries 선택 >> Add Library

User Library >> User Libraries >> New >> 이름 입력(jdbc로 설정)

1, 2, 3 순서대로 따라가면 된다. 나는 이미 만들어 놓은 jdbc 라이브러리가 있기 때문에 아래에 경고가 표시됨
jdbc 선택 >> Add External JARs... >> 다운받은 connector 파일 선택

Apply and Close >> Finish

위 사진과 같이 나온다면 성공적으로 마무리됨
위 과정은 Java와 SQL을 연결하기 위해 준비단계이고, 이제 코드를 통해 직접 연결할 차례이다.
위에서 동작 순서를 설명했던 과정 중 DB Driver를 Java 메모리 상으로 로드하고, JAVA와 DB를 연결하는 과정까지 진행한다.
위의 일련의 과정을 통해 Import한 Driver 파일을 객체화하는 과정이다.
이를 통해 DriverManager 클래스를 사용할 수 있다.
Class.forName(driver)와 같이 사용한다.String driver = "com.mysql.cj.jdbc.Driver";
...
Class.forName(driver);
driver 변수를 String 타입으로 선언하고 호출할 때, 매개변수로 입력한다.
load를 한 이후 Java와 DB를 연결한다.
위 세 가지를 사용해 연결한다.
con = DriverManager.getConnection(url, Id, password)와 같이 사용Connection이 완료되면 statement 또는 preparedstatement 클래스를 사용할 수 있다.
String url = "jdbc:mysql://localhost:3306/MySQL?serverTimezone=UTC";
String id = "root";
String pwd = "1234";
...
con = DriverManager.getConnection(url, id, pwd);
위 load 과정과 동일하게 각 요소들을 미리 변수로 선언하고, 클래스 메서드를 호출할 때 매개변수로 입력한다.
위 코드 설명은 아주 간략하게 한 것이고 전체 코드를 보자
package test
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionManager {
public static Connection getConnection() {
Connection con = null;
String driver = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test"; // jdbc는 DB 이름
String id = "root";
String pwd = "1234";
try {
Class.forName(driver);
try {
con = DriverManager.getConnection(url, id, pwd);
System.out.println("Connected...");
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("Connection Failed!");
e.printStackTrace(); // 예외 발생시 내용 출력
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("Connection Failed. Check Driver or URL");
e.printStackTrace(); // 예외 발생시 내용 출력
}
return con;
}//getConnection()
}
코드를 보면 어렵게 느껴질 수도 있지만 굉장히 단순하다.
순서만 지켜서 load -> connection 순으로 진행하면 되는 것으로 굉장히 심플하다.
이제 완성했으니 Main 클래스를 생성해 실행해보자
Main 클래스
package test;
public class main {
public static void main(String[] args) {
// TODO Auto-generated method stub
ConnectionManager.getConnection();
}
}

성공적으로 연결된 것을 확인할 수 있다.
위 과정을 모두 완료했다면 JAVA와 DB가 Connection을 통해 서로 정보를 주고 받을 준비가 완료되었다.