-
JDBC (Java Database Connectivity)
-
자바 환경에서 데이터베이스 처리를 위한 메커니즘
-
자바 클라이언트와 관계형 데이터베이스 서버와의 연동을 위한 메커니즘
-
자바 프로그램을 사용하여 데이터베이스에 접속하고 SQL문을 실행하고
실행 결과로 데이터를 얻는 일련의 과정 제공
-
-
자바 프로그램 내에 SQL 명령문을 사용하여 데이터베이스와 연동
-
JDBC API
데이터베이스 연동을 가능하게 하는, Java.sql 패키지에 들어있는 프로그램들
-
JDBC Manager(관리자)
-
응용 프로그램이 요구하는 데이터베이스에 접근하도록 적절한 드라이버 선택
-
데이터베이스와 연결
-
JDBC Driver
다양한 DBMS 제조사들이 자기 회사의 DB를 Sun사의 자바 프로그램과 연동
할 수 있도록 지원하는 기술로서, 제조사마다 다른 JDBC 드라이버를 제공
MSSQL2K , ORACLE, Cybase, DB2, MySQL 등 다양한 드라이버
-
-
JDBC
-
서버 언어를 이용한 응용 프로그램들이 DBMCS에 연결하고 데이터를 검색할 수 있는 서버 패키지
-
JDBC 는 함수 호출용 SQL 인터페이스
-
-
JDBC의 장점
-
개방성
-
배우고 사용하기가 쉽다.
-
-
4 요소
-
응용 프로그램, 드라이버 매니저, 드라이버, DBMS
-
응용 프로그램
-
응용 프로그램은 JDBC메소드를 호출해서 SQL 문은 DBMS에 보내고 원하는 데이터를 검색
-
-
드라이버 매니저
-
응용 프로그램이 요청하는 드라이버를 로드
-
-
드라이버
-
드라이버는 데이터베이스에 SQL 문을 전송하기도 하고, 검색 결과를 응용 프로그램에 전달하기도 한다.
-
-
DBMS
-
데이터가 저장되어 있는 장소
-
-
-
오라클은 국내에서 가장 널리 사용되는 DBMS로서 업체 및 관공서, 학교 등에서 많이 사용
-
모든 플랫폼 버전 제공
-
가격이 비쌈
-
-
오라클에서는
-
JDBC Thin 과 JDBC OCI 두 가지 타입의 JDBC 를 제공
-
JDBC Thin은 자바로 작성된 네트워크 드라이버이고 JDBC OCI는 네이티브 메소드로 작성된 드라이버
-
JDBC OCI는 네이티브 메소드로 작성되었기 때문에 애플릿시에는 사용할 수 없음
-
-
JDBC 드라이버 매니저는
-
서버 응용 프로그램이 사용하는 데이타베이스에 맞는 드라이버를 찾아서 JDBC를 초기화 함
-
-
JDBC를 이용하여 데이타베이스에 SQL문을 전송
-
그 결과는 응용 프로그램에 전달하는 역할을 하는 JDBC 드라이버는 4가지 유형
-
-
다음 사이트를 방문하면 JDBC 드라이버를 제공하는 업체의 목록을 확인할 수 있음
-
JDBC API
-
서버 응용 프로그램에서 데이터베이스를 연결하고
-
데이터를 제어하는 일련의 인터페이스와 클래스
-
관련 인터페이스와 클래스들은 JDK의 “java.sql” 패키지에 정의
-
JDBC 2.0 표준 이외의 몇가지 기능을 구현한 클래스들이 “javax.sql” 패키지에 포함되어 있음
JDBC를 이용한 프로그램의 기본 작업
-
-
-
먼저 사용하는 드라이버를 드라이버 매니저에 등록
-
Class.forName() 메소드를 사용
-
Driver 객체를 생성함으로써 registerDriver() 메소드를 자동으로 호출
-
-
드라이버 메니저를 이용하여 데이터베이스를 연결
-
드라이버와 관련된 작업을 하는 클래스는 DriverManager이고
-
DriverManager를 통해서 만들어진 Connect클래스의 객체를 이용하여 Statement 객체를 만듦.
-
-
SQL 문을 서버에 전송
-
Statement 객체를 이용하여 SQL 문을 서버에 전송하고 SQL 문을 실행
-
-
서버는 SQL 결과를 클라이언트에 보내면 이제 그 결과를 가지고 원하는 작업을 하게 됨.
-
결과를 ResultSet이라는 객체를 통해서 받게 됨
-
-
DB와 연결된 객체 종료
JDBC 절차
-
드라이버 로드
-
Driver drv = new sun.jdbc.odbc.JdbcOdbcDriver();
-
DiverManager.registerDriver(drv);
-
-
데이터베이스 연결
-
Connection con = DriverManager.getConnection(URL);
-
-
질의
-
문장 생성
-
Statement stmt = con.createStatement();
-
-
질의
-
Stmt.execute(“create table weater(city varchar(80), lo integer, hi integer, day date);”);
-
-
ResultSet rs = stmt.executeQuery(“select * from weather”);
-
-
문장 닫기
-
stmt.close();
-
-
연결 닫기
-
con.close();
드라이버 리스트에서 드라이버 등록
-
-
드라이버 매니저
-
메소드는 DriverManager.registerDriver() 호출
-
다른 방법으로는 Class.forName() 메소드를 이용하거나 클래스의 객체를 정의하여 드라이버를 로드할 때 자동으로 호출할 수 있음
-
-
3가지 방법
-
Class.forName()
-
Driver 객체를 생성함으로써 registerDriver() 메소드를 자동으로 호출
-
registerDriver()메소드를 이용하여 드라이버를 등록함
ex) 방법 1
-
-
Class.forName()메소드릴 사용
-
registerDriver() 메소드를 자동으로 호출함.
-
Class.forName(드라이버 이름);
-
예
-
Driver drv = Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
-
//JDBC-ODBC 드라이버
-
-
Driver drv = Class.forName(“org.gjt.mm.mysql.Driver”);
-
//MySql 드라이버
-
-
Driver drv = Class.forName(“oracle.jdbc.driver.OracleDriver”);
-
//Oracle Thin드라이버
-
-
Driver drv = Class.forName(“com.inet.tds.TdsDriver”);
-
//SQL Server7의 Spinta 드라이버
-
-
Driver drv = Class.forName(“con.internetcds.jdbc.tds.Driver”);
-
//SQL Server7의 FreeTds드라이버
ex ) 방법 2
-
-
-
Driver 객체를 생성함으로써 registerDriver()메소드를 자동으로 호출함
-
new 드라이버이름() 또는
-
Driver 객체 이름 = (Driver) new 드라이버이름();
-
-
예1 )
-
Driver drv = (Driver) new postgress95.PGDriver();
-
New MsqlDriver();
ex)방법 3
-
-
registerDriver() 메소드를 이용하여 드라이버를 등록함
-
DriverManager.registerDriver(new 드라이버이름());
-
예1
-
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); //for Oracle10G
-
-
예2
-
Driver drv = new sun.jdbc.odbc.JdbcOdbcDriver();
-
DriverManager.registerDriver(drv);
-
-
-
'Study > Backend' 카테고리의 다른 글
java 포맷형식 출력 (0) | 2020.11.18 |
---|---|
JDBC 문제? (0) | 2020.11.15 |
자바 : Final (0) | 2020.11.12 |
- JDBC와 MY SQL 드라이버 (0) | 2020.11.11 |
MySQL (0) | 2020.11.10 |