JDBC(Java DataBase Connectivity)
라이브러리는 자바에서 DB를 조작하기 위해 사용됩니다.
JDBC
는 어느 데이터베이스를 이용해도 동일하게 동작할 수 있도록하는 클래스와 인터페이스를 제공하고 있습니다.이때 각 DB에 대응하기 위해서 각 DB에 맞는 JDBC Driver
를 연결해서 이용하면 됩니다. JDBC Driver
는 JDBC 인터페이스
를 구현해서 실제로 DB 조작에 대한 작업을 수행하게 됩니다.
JDBC
는 java.sql, javax.sql
패키지에 존재하며 다음과 같은 연관 관계를 갖습니다.
DriverManager: DriverManager 클래스
는 드라이버를 로딩하고 관리합니다. DB와 연결한 후 Connection
구현 객체를 생성합니다.
Connection: Connection 인터페이스
는 Statement, PreparedStatement, CallableStatement
구현 객체를 생성하고, 트랙잭션 처리나 DB 연결 종료에 사용합니다.
Statement: Statement
인터페이스는 DDL, DML 실행에 사용됩니다.
PreparedStatement
인터페이스는 DDL, DML 실행에 사용한다는 점은 동일하지만 매개변수화된 SQL 쿼리를 사용할 수 있습니다.
CallableStatement
인터페이스는 DB에 저장된 프로시저, 함수를 호출할 때 사용합니다.
ResultSet: DB에서 가져온 데이터를 읽을 때 사용합니다.
오라클 DB를 사용해서 JDBC를 실습하기 위해 드라이버를 설치해보겠습니다.
오라클 DB 설치는 이 포스트를 참조해주시길 바랍니다.
windows, IntelliJ 환경에서 실습합니다.
오라클 JDBC 다운로드 페이지에 접속합니다. Free Release에서 JDK 버전에 맞는 오라클 JDBC를 선택해서 .jar
를 받습니다.
다운 후 다운받은 jar를 찾기 쉬운 디렉토리에 보관합니다. 저는 유저 디렉토리에 jdbc-driver라는 이름의 디렉토리를 하나 만든 후 그곳에 배치했습니다.
그 다음 인텔리제이를 열고 JBDC를 사용하고자 하는 프로젝트의 Project Structure (Ctrl + Shift + Alt + S)
를 엽니다.
Project Settings -> Libraries -> + -> Java 선택
을 한 후 방금 전에 다운로드 받았던 jar를 지정하고 Apply해줍니다.
오라클 JDBC가 제대로 적용되었는지 확인해볼 시간입니다. 먼저 오라클 DB에 접속해서 서버를 실행시켜주세요.
그리고 다음 코드를 복사해서 붙여넣습니다. 간단하게 코드를 통해 DB에 접속 확인과 연결 해제를 확인하는 코드입니다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCSample {
public static void main(String[] args) {
Connection conn = null;
String user_name = "유저명"; //유저명 바꿔주세요.
String password = "비밀번호"; //비밀번호 바꿔주세요.
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521/xe",
user_name,
password
);
System.out.println("Connected to database");
}
catch (SQLException e) {
e.printStackTrace();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
finally {
if (conn != null) {
try {
conn.close();
System.out.println("Connection closed");
}
catch (SQLException e) {
}
}
}
}
}
정상적으로 실행이 됐다면 다음과 같이 실행 결과로 출력하고자하는 메세지가 출력됩니다.
Spring Initializr를 사용하면 드라이버 및 JDBC를 더 간단하게 추가하고 사용할 수 있습니다.
Dependencies를 추가하는 과정에서 JDBC
나 DB 명을 입력하면 관련된 API나 라이브러리들이 나타납니다.