Study/Backend

JDBC란

david95j2 2020. 11. 14. 19:42
  1. JDBC (Java Database Connectivity)

    •  자바 환경에서 데이터베이스 처리를 위한 메커니즘

    •  자바 클라이언트와 관계형 데이터베이스 서버와의 연동을 위한 메커니즘

    •  자바 프로그램을 사용하여 데이터베이스에 접속하고 SQL문을 실행하고

          실행 결과로 데이터를 얻는 일련의 과정 제공

 

    1.  자바 프로그램 내에 SQL 명령문을 사용하여 데이터베이스와 연동

 

  1. JDBC API

    데이터베이스 연동을 가능하게 하는, Java.sql 패키지에 들어있는 프로그램들

 

  1.  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);

      [출처] jdbc 란|작성자 프로모션맨

'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