JDBC(Java DataBase Connectivity)는 자바프로그램이 데이터베이스와 연동되어 데이터를
주고 받을 수 있게 연결해주는 인터페이스이다.
기본적으로 사용하는 내용은 다음과 같다.
- DRIVER의 클래스의 경로 : oracle.jdbc.driver.OracleDriver
- 데이터베이스 연결 객체 생성시 사용될 URL : jdbc:oracle:thin:@localhost:1521:orcl
- 데이터베이스 유저 아이디와 비밀번호 : square, 1234
- 클래스의 존재 여부를 확인하는 함수 : Class.forName("")
- Connection 객체를 반환하는 함수 : DriverManager.getConnection(url, id, pwd)
오라클 DB의 'SQUARE' 유저와 연동하기
저장된 문자열로 경로를 쉽게 가져올 수 있도록 선언하고, Connection 객체를 전달 받을 con 변수를 선언한다.
import java.sql.Connection;
public class Jdbc_01_Connection {
public static void main(String[] args) {
String driver = "oracle.jdbc.driver.OracleDriver"; //OracleDriver 클래스의 경로
String url = "jdbc:oracle:thin:@localhost:1521:orcl"; //기본 URL 구조
Connection con = null; //데이터베이스에 명령을 내릴 수 있는 객체 생성
}
}
이제 문자열 변수 driver에 저장되어 있는 경로에 쓰여 있는 클래스 이름이 존재하는지 확인해보아야 한다.
import java.sql.Connection;
public class Jdbc_01_Connection {
public static void main(String[] args) {
String driver = "oracle.jdbc.driver.OracleDriver"; //OracleDriver 클래스의 경로
String url = "jdbc:oracle:thin:@localhost:1521:orcl"; //기본 URL 구조
Connection con = null; //데이터베이스에 명령을 내릴 수 있는 객체 생성
try {
Class.forName(driver); // 드라이버 경로에 있는 클래스 이름이 존재하는지 확인
System.out.println("드라이버 읽기 완료!");
} catch (ClassNotFoundException e) { // 예외 발생 시 실행되는 구간
System.out.println("드라이버 읽기 실패." + e.getMessage());
}
}
}
나중에 DriverManager 클래스의 함수를 사용하여 연결 객체를 생성하게 되는데 위에서 아무런 값의
전달도 일어나지 않았지만 자동으로 OracleDriver를 읽어오게 된다.
* 이 내용은 해당 클래스의 static 블록의 실행과 관련이 있음
드라이버의 읽기가 완료되었으니 con 변수에 Connect 객체를 새로 생성하여 전달한다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Jdbc_01_Connection {
public static void main(String[] args) {
String driver = "oracle.jdbc.driver.OracleDriver"; //OracleDriver 클래스의 경로
String url = "jdbc:oracle:thin:@localhost:1521:orcl"; //기본 URL 구조
Connection con = null; //데이터베이스에 명령을 내릴 수 있는 객체 생성
try {
Class.forName(driver); // 드라이버 경로에 있는 클래스 이름이 존재하는지 확인
System.out.println("드라이버 읽기 완료!");
con = DriverManager.getConnection(url, "square", "1234");
System.out.println("데이터베이스 연결 완료!");
} catch (ClassNotFoundException e) { // 클래스를 찾을 수 없을 때 예외 처리
System.out.println("드라이버 읽기 실패 ERR" + e.getMessage());
} catch (SQLException e) { // 데이터베이스 객체 생성 실패 시 예외 처리
System.out.println("데이터 베이스 연결 실패 ERR" + e.getMessage());
}
}
}
DriverManager.getConnection의 인자로는 URL주소, 아이디, 비밀번호 세 가지를 전달한다.
실행이 정상적으로 완료되면 Conenction 객체를 생성하고 반환한다.
여기까지 완료가 되면 이제 'con'이라는 변수로 현재 연결된 데이터베이스 유저와의 소통이 가능해진다.
댓글