http://ja.wikipedia.org/wiki/JDBC !!!Type1 Driver JDBC-ODBC ブリッジ JDBCからのクエリー要求を、ODBCを経由して受け渡し、データベースとアクセスするもの。ODBCドライバが必須であり、ハードウェアとOSに依存する。Java SEに標準で添付されているドライバでもある。 !!!Type2 Driver Native-API ドライバ JDBCからのクエリー要求を、OS上のDLLや専用ライブラリに受け渡し、そこからデータベースにアクセスするもの。Type1に比べて階層が薄く済むため高速化が期待できる点とTCP/IPに依存しない利点があるが、やはりハードウェアとOSに依存する。OracleでいうとOCIドライバがType2 Driverに相当する。 !!!Type3 Driver 通信プロトコルドライバ JDBCからのクエリー要求をJavaで記述されたのドライバ内で独自のプロトコルに変換し、それをアプリケーションサーバを通じてデータベースにアクセスするもの。機種依存・データベース依存をせずに軽量なドライバが作成可能だが、中間サーバを挟むためにパフォーマンスに問題が起きる。 !!!Type4 Driver ネイティブプロトコルドライバJDBCからのクエリー要求をすべてJava上で処理してしまうもの。Java上にデータベースにアクセスするためのすべての機能を乗せる為、ドライバのサイズが大きくなる、パフォーマンスが若干低下する。基本的にTCP/IPでしか利用できないなどの欠点があるがハードウェアとOSに依存しないため移植性に優れている。OracleでいうとthinドライバがTYPE4ドライバに相当する。 !!!その他 TYPE1、TYPE2はDBMSのDLLファイルやライブラリファイルを呼び出す形となるため、JVMのメモリー管理外となる。TYPE3、TYPE4についてはJVM上でJavaのクラスとして実装されているためJVM上のガベージコレクションの対象となり管理が行いやすく、流れとしてはTYPE4が主流となっている。 {{category2 データベース}}