JDBC 개념
JDBC(Java Database Connectivity)는 데이터베이스에 접근하여 SQL문을 실행하기 위한 자바 라이브러리를 말합니다.
DB와 연동하기 위해서는 Oracle, Mssql, Mysql에서 제공하는 각각의 JDBC 드라이버가 필요합니다.
JDBC 드라이버는 DBMS와 통신을 담당하는 자바 클래스로 DBMS마다 별도의 JDBC 드라이버가 필요합니다. 드라이버는 jar파일로 제공되고 Oracle, Mssql, Mysql별로 각각의 드라이버가 필요합니다.
저는 Oracle로 테스트를 하기 위해 ojdbc6.jar를 이용하여 테스트를 진행하였습니다.
먼저 필요한 DB의 JDBC 라이브러리를 Import하기 위해 프로젝트를 우클릭 하여 Properties를 클릭합니다.
Properties에서 Java Build Path를 클릭하여
Add External jars를 클릭하여 다운로드한 ojdbc6.jar를 추가합니다.
이렇게 해서 Oracle Jdbc 라이브러리를 임포트 하였습니다. 그럼 이제 Oracle과 Java를 연동하는 것을 테스트하겠습니다. 따로 테이블을 생성하지 않고 연결만 해보겠습니다.
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub connectionDB(); } public static void connectionDB() { Connection con = null; String user = "ktko"; String password = "0714"; String url = "jdbc:oracle:thin:@localhost:1521:orcl"; try { Class.forName("oracle.jdbc.driver.OracleDriver"); con = DriverManager.getConnection(url, user, password); System.out.println("database connection Success.!!"); } catch (ClassNotFoundException e) { e.printStackTrace(); //database driver class Not load } catch (SQLException e) { e.printStackTrace(); //database connection failed } catch (Exception e) { e.printStackTrace(); //unknown Exception.. } finally { try { if(con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
소스 분석 하기
String user = "ktko"; String password = "0714"; String url = "jdbc:oracle:thin:@localhost:1521:orcl";
먼저 user은 접속할 계정명, password는 계정명에 대한 비밀번호
url은 접속할 DB의 주소를 나타냅니다.
접속할 DB의 주소는
[JDBC]:[DBMS이름]@[주소]:[포트]:[데이터베이스식별자]
로 구분되며 DBMS별 URL은 아래와 같습니다.
- Class.forName("oracle.jdbc.driver.OracleDriver");
class.forName()메서드를 ojdbc6.jar에 있는 OracleDriver을 로딩하는 메서드입니다. DB별 Driver로딩하기 위해 forName()에 들어가야할 값들은 아래와 같습니다.
oracle : oracle.jdbc.driver.OracleDriver
mysql : com.mysql.jdbc.Driver
MSsql : com.microsoft.sqlserver.jdbc.SQLServerDriver
'Java 개발 이야기' 카테고리의 다른 글
자바 JVM 메모리 구조 이해하기 (2) | 2017.08.28 |
---|---|
자바 MessageDigest를 이용한 Hash 알고리즘 (0) | 2017.08.23 |
자바 디자인 패턴 - 싱글톤 패턴 예제 및 설명 (0) | 2017.07.31 |
자바 String의 단점 그리고 StringBuffer와 StringBuilder (0) | 2016.11.28 |
자바 (Interface) 인터페이스를 이용한 로봇 장난감 만들기 프로그래밍(다형성을 이용!) (0) | 2016.05.01 |