JAVA에서 JDBC 연동하는 방법
이클립스환경에서 Oracle 데이터베이스를 연결하는 방법에 대해서 알아보도록 하자. (oracle 11g 설치)
JDBC 연동 방법
JDBC(Java Database Connectivity)는 Java 와 Database를 연동하는 애플리케이션을 구현할 수 있도록 해주는 API이며, 간단히 java.sql 패키지라고 할 수 있다. 이 java.sql 패키지는 80%가 interface로 구현되어 있으며, 해당 인터페이스를 각 DBMS 개발자들이 상속받아 구현을 하는데 이를 드라이버라고 한다.
각 회사(oracle, mysql 등)마다 개발해놓은 Driver가 다르기 때문에 우리는 자신이 설치한 DB에 맞게 드라이버를 설치해서 JDBC연동을 시켜주면 된다.
여기서는 이클립스를 통해 oracle DB를 사용하는 방법에 대해 알아보려고 한다.
1. ojdbc6.jar파일 연동
1) oracle 사이트에서 jdbc driver 다운로드 ==> ojdbc6.jar 파일
2) oracle이 깔려 있다면 자동으로 driver 파일도 깔려 있다.
==> C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
3) 위 경로에서 ojdbc6.jar파일을 복사하여 자바가 설치되어있는 폴더에 붙여넣기 한다.
==> C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext // 설정 완료
2. 이클립스에 ojdbc6.jar 파일 넣기
연동되었다!
* 만약 설정이 안된다면
classpath에 C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\ojdbc6.jar 경로를 추가한다.
==> 제어판 -> 시스템 -> 고급 -> 환경변수 -> classpath 찾아 편집
==> .;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\ojdbc6.jar 입력해준다.
3. 기본적인 코드 구성
1) 드라이버 객체화
Class.forName("oracle.jdbc.driver.OracleDriver");
2) DB와 연결
Connection con = DriverManager.getConnection();
3) 실행도구 생성 (sql문을 실행시키기위한 Statement 객체 얻어오기)
Statement stmt = con.createStatement();
4) SQL문 실행
stmt.execute(sql);
5. DB연결 종료
stmt.close();
con.close();
4. 코드를 통해 JDBC 연동
이제 실제로 자바코드를 통해 DB와 연동해보자.
1) 먼저 import java.sql.*;로 임포트해준다.
2) 연동만 확인하기 위해선 드라이버를 객체화 하고 DB와의 연결 코드만 작성해주면 된다.
import java.sql.*;
class JDBCTest{
public static void main(String[] args){
try{
String url = "jdbc:oracle:thin:@localhost:1521:XE";
string user = "scott", pwd = "****"; // 각자 DB 패스워드 입력
// 1. 오라클 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Driver Loading Success!!"); // 연결 됐는지 콘솔에 출력
// 2. DB와 연결
Connection con = DriverManger.getConnection(url, user, pwd);
// 전제조건 db서버 연결되어 있어야 한다.
System.out.println("DB 연결 성공!!");
// url이 오타가 나면 출력되지 않는다.
} catch(ClassNotFoundException e){
System.out.println("드라이버 연동 실패");
e.printStackTrace(); // 예외 추적
} catch(SQLException e) {
e.printStackTrace();
}
// 5. 연결 종료
con.close();
}
}
1) 드라이버 로딩을 한다.
2) Connection 객체를 생성하고 DriverManger.getConnection()의 매개변수로 url, id, password를 넣어준다.
위 코드와 같이 url, user, pwd를 변수로 만들어주고 넣어주는게 편리하다.
3) Connection 객체를 생성하고 연결할 때 ClassnotFoundException 예외가 발생하기 때문에 try ~ catch로 잡아준다.
4) 연결 종료를 위해 Connection 객체 변수에 con.close()를 작성한다.
출력 - 연동 성공
Driver Loading Success!!
DB 연결 성공!!
출력 - 연동 실패
Driver Loading Success!!
java.sql.SQLException: No suitable driver found for jdbcs:oracle:thin:@localhost:1521:XE
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at jdbc.day01.JDBCTest.main(JDBCTest.java:26)
위 상황은 드라이버 로딩은 성공했지만 DB와의 연동에서 예외가 발생하게 된 상황이다.
url이나, user id, pwd를 틀리게 작성하면 위와같이 SQLException이 발생한다.
우리는 e.printStackTrace() 를 작성했기 때문에 어디서 예외가 발생했는지 확인할 수 있다.
url에 jdbc:oracle:thin ~ 으로 작성해야 하는데 jdbcs로 작성해서 연동이 실패하게 된 것이다.
url과 id, password를 잘 입력했는지 꼭 확인하자.
'프로그래밍 > JDBC' 카테고리의 다른 글
알기 쉬운 JAVA JDBC INSERT문 작성 방법에 대해 알아보자 (0) | 2020.06.12 |
---|---|
알기 쉬운 JAVA JDBC CREATE문 작성 방법에 대해 알아보자 (0) | 2020.06.11 |