관리 메뉴

IT 컴퓨터공학 자료실

JDBC에 대해 본문

영어 번역 & 일본어 번역

JDBC에 대해

윤맨1 2015. 7. 19. 20:48

JDBCJava とリレーショナルデータベースの接続のためのAPIJDBC正式名称であって略称ではないがJava database connectivityジャバ・データベース・コネクティビティ由来する名前だとえられている[1]ODBCをベースにサン・マイクロシステムズおよび DataDirect 共同開発しているとわれているそのためドライバのデフォルトの自動コミットの有効化などている々ある

Java においてSQL使用してリレーショナルデータベース管理システム (RDBMS) などと接続する機能標準化抽象化している


JDBC는 Java 와 관계형 데이터베이스의 연결을 위한 API이다. JDBC는 정식 명칭이며 약칭은 아니지만, Java database connectivity(자바 데이터베이스 연결)에서 유래 된 이름이라고 생각되고 있다. ODBC를 기반으로 썬 마이크로 시스템즈와 DataDirect가 공동으로 개발하고 있는 것으로 알려져 있다따라서 드라이버의 기본 자동 커밋 활성화 등 비슷한 점도 많이 있다.

Java에서 SQL을 사용하여 관계형 데이터베이스 관리 시스템 (RDBMS) 등과 연결하는 기능을 표준화 (추상화)하고 있다.


JDK 1.0拡張APIという位置付けであったがJDK 1.1正式Java基本SDK同梱されるようになった標準的機能 (API) は Java SE まれているJDBC規格は Java SDK とは独立してわれておりAPIのアップデートは随時行われている



원래는 JDK 1.0의 확장 API라는 자리 매김했지만, JDK 1.1에서 공식적으로 Java의 기본 SDK에 포함되게 되었다. 표준 기능 (API)Java SE에 포함되어있다. JDBC 표준은 Java SDK 는 독립적으로 이루어지고 있으며, API 업데이트는 수시로 진행되고 있다.

 


ドライバ

드라이버

 


JDBC利用するには100% Pure Java Apache Derby 同梱されている Java SE 6 以降SDK[2]DBMSJDBCドライバを用意する必要がある現在開発われているほとんどのデータベースではJDBCドライバが用意されているこれらのドライバを管理するのが JDBC ドライバ・マネージャーであるJDBC ドライバ・マネージャーをいると複数JDBCドライバを同時利用することができるJDBC使うユーザーはJDBCドライバをロードしくはClass.forName("ドライバクラス")メソッドを利用してされるまたJDBC4.0以降であればドライバの自動解決機能するためDriverManager.getConnnection("jdbc:subprotocol:subname形式のデータベースURL")メソッドを使うことができるこれらのメソッドを利用した場合コンパイラによるそのドライバの依存チェックがわれないコンパイルにドライバをあらかじめ参照できる設定しなくていなどの利点がある)、JDBC ドライバ・マネージャーを使ってデータベースドライバを取得データベースと接続ってデータベースアプリケーションを記述するになるまたJava のオブジェクト指向言語特性かしてドライバはJDBC基本API機能同梱するもできるこの場合JDBC APIのスーパーセットのクラスをすことでこれらの機能利用可能にすることができる

たとえば初期のオラクルOracle Database (Oracle 8) JDBCドライバは当時JDBC API BLOB[3]CLOB[4]対応していなかったため独自機能拡張をしてBLOBCLOB対応していた


JDBC를 이용하기 위해서는 100% Pure Java로 만들어진 Apache Derby가 포함되어있는 Java SE 6 이상 SDK를 제외한 모든 DBMS에 대한 JDBC 드라이버를 준비할 필요가 있다. 현재 개발되고 있는 대부분의 데이터베이스 JDBC 드라이버가 준비되어있다. 이러한 드라이버를 관리하는 것이 JDBC 드라이버 매니저이다. JDBC 드라이버 관리자를 사용하면 여러 JDBC 드라이버를 동시에 이용할 수 있다. JDBC를 사용하는 유저는 JDBC 드라이버를 로드 (많은 Class.forName ( "드라이버 클래스 이름") 메소드를 이용하여 호출된다. 또한 JDBC4.0 이상이면 드라이버 자동 해결이 작동하므로 DriverManager.getConnnection ( "jdbc : subprotocol : subname 형식의 데이터베이스 URL") 메소드를 사용할 수 있다. 이러한 방법을 이용하면 컴파일러에 의한 드라이버의 의존성 확인은 되지 않으므로 컴파일 시에 드라이버를 미리 볼 수 같이 설정하지 않아도 된다. 등의 이점이 있다), JDBC 드라이버 관리자를 사용하여 데이터베이스 드라이버를 검색하여 데이터베이스 연결을 수행하여 데이터베이스 응용 프로그램을 작성하게 된다. 또한 Java 의 객체지향언어의 특성을 살려 각 드라이버는 JDBC 기본 API에 없는 기능을 함께 할 수도 있다. 이 경우, JDBC API의 슈퍼 세트 클래스를 호출하는 것으로 이러한 기능을 이용 가능하게 할 수 있다.

예를 들어, 초기 오라클의 Oracle Database ( Oracle 8 ) JDBC 드라이버는 당시의 JDBC APIBLOB, CLOB에 대응하고 있지 않았기 때문에 독자적으로 기능 확장을 하여 BLOBCLOB에 대응하고 있었다.

 

JDBC ドライバのタイプ

JDBC의 드라이버 유형


 JDBCドライバは4つのタイプに分類されている

JDBC 드라이버는 4 가지 유형으로 분류되어있다.

 

タイプ1

유형 1

 

JDBC-ODBC ブリッジ JDBCからのクエリー要求ODBC経由してデータベースとアクセスするものODBCドライバが必須でありハードウェアとOS依存するJava SE7 までに標準添付されているドライバでもあるJava7では非推奨となりJava8では標準から削除された

JDBC-ODBC 브리지 JDBC에서 쿼리 요청을 ODBC 를 통해 전달 데이터베이스와 액세스하는 것. ODBC 드라이버가 필수이며, 하드웨어 와 OS 에 의존한다. Java SE7 까지 표준으로 첨부되어있는 드라이버이기도하다. Java7에서는 사용되지 않으며, Java8는 표준에서 삭제되었다.

 

タイプ2

유형 2

 

ネイティブ API ドライバ JDBCからのクエリー要求オペーレーティングシステムDLL専用ライブラリにそこからデータベースにアクセスするものType1べて階層むため高速化期待できるTCP/IP依存しない利点があるがやはりハードウェアとオペレーティングシステムに依存するオラクルでいうとOCIドライバがこれに該当する

네이티브 API 드라이버 JDBC에서 쿼리 요청을 운영 우퍼 체제에서 DLL 이나 전용 라이브러리에 전달 거기에서 데이터베이스에 액세스하는 것. Type1​​비해 계층이 얇게 되기 때문에 속도가 기대할 수있는 점과 TCP / IP 에 의존하지 않는 장점이 있지만, 역시 하드웨어 및 운영 체제에 의존한다. 오라클로 말하면 OCI 드라이버가 이에 해당한다.

 

タイプ3

유형 3


 通信プロトコルドライバ JDBCからのクエリー要求Java 記述されたのドライバ独自のプロトコルに変換それをアプリケーションサーバをじてデータベースにアクセスするもの機種依存・データベース依存をせずに軽量なドライバが作成可能だが中間サーバをむためにパフォーマンスに問題きる

통신 프로토콜 드라이버 JDBC에서 쿼리 요구를 Java 로 작성된 드라이버에서 자체 프로토콜로 변환하고 그것을 응용 프로그램 서버를 통해 데이터베이스에 액세스하는 것. 기종 의존 데이터베이스 의존하지 않고 가벼운 드라이버가 생성 가능하지만, 중간 서버를 끼우는 데 성능에 문제가 있습니다.

 

タイプ4

유형 4

 

ネイティブプロトコルドライバJDBCからのクエリー要求をすべて Java 処理してしまうものJava にデータベースにアクセスするためのすべての機能せるドライバのサイズがきくなるパフォーマンスが若干低下する基本的TCP/IPでしか利用できないなどの欠点があるがハードウェアとオペレーティングシステムに依存しないため移植性れているオラクルでいうと thin ドライバがこれ該当する기본 프로토콜 드라이버 JDBC에서 쿼리 요청을 Java 에서 처리되어 버린다. Java 에서 데이터베이스에 액세스하기위한 모든 기능을 올려 놓기위한 드라이버의 크기가 커지는 성능이 약간 저하된다. 기본적으로 TCP / IP에서 밖에 사용할 수없는 등의 단점이 있으나 하드웨어와 운영 체제에 의존하지 않기 때문에 이식성이 뛰어나다. 오라클로 말하면 thin 드라이버 이것은 해당한다.


タイプ1タイプ2DBMSDLLファイルやライブラリファイルをとなるためJVMのメモリー管理外となるタイプ3タイプ4についてはJVMJava のクラスとして実装されているためJVMのガベージコレクションの対象となり管理いやすくれとしてはTYPE4主流となっている


유형 1, 유형 2DBMSDLL 파일이나 라이브러리 파일을 호출하는 형태가 되기 때문에, JVM의 메모리 관리에서 제외된다. 유형 3, 유형 4에 대해서는 JVM에서 Java 클래스로 구현되어 있기 때문에 JVM의 가비지 컬렉션 의 대상이 관리하고 쉽고 흐름은 TYPE4이 주류를 이루고 있다.



출처 : https://ja.wikipedia.org/wiki/JDBC