トップ 一覧 置換 検索 ヘルプ RSS ログイン

JDBCのタイプの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
http://hp.vector.co.jp/authors/VA014436/prg_memo/database/all/004.html
http://ja.wikipedia.org/wiki/JDBC

!ODBCデータソース
,ドライバ,接続文字列
,ODBCドライバ ,DSN=[データソース名]; UID=[ユーザID]; PWD=[パスワード]

!SQLServer
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=SQLOLEDB;Data Source=[接続先サーバ];User Id=[ユーザID];Password=[パスワード];Initial Catalog=[データベース]
,ODBCプロバイダ ,Driver={SQL Server};Server=[接続先サーバ];Uid=[ユーザID];Pwd=[パスワード];Database=[データベース]
,JDBC ,jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
!!!Type1 Driver
JDBC-ODBC ブリッジ JDBCからのクエリー要求を、ODBCを経由して受け渡し、データベースとアクセスするもの。ODBCドライバが必須であり、ハードウェアとOSに依存する。Java SEに標準で添付されているドライバでもある。

!Access
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[MDBファイルのファイルパス];User Id=[ユーザID];Password=[パスワード]
,ODBCプロバイダ ,Driver={Microsoft Access Driver (*.mdb)};DBQ=[MDBファイルのファイルパス];Uid=[ユーザID];Pwd=[パスワード]
,JDBC ,jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=[MDBファイルのファイルパス]
!!!Type2 Driver
Native-API ドライバ JDBCからのクエリー要求を、OS上のDLLや専用ライブラリに受け渡し、そこからデータベースにアクセスするもの。Type1に比べて階層が薄く済むため高速化が期待できる点とTCP/IPに依存しない利点があるが、やはりハードウェアとOSに依存する。OracleでいうとOCIドライバがType2 Driverに相当する。

※JDBCの場合、"Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");"を行う必要がある
※パスワード付DB(セキュリティの設定で行えるデータベースのパスワード)にアクセスする場合は、以下の例のように接続文字を作成する。
  例 Driver={Microsoft Access Driver (*.mdb)};DBQ=[MDBファイルのファイルパス];Pwd=[パスワード]
  
!Oracle
Oracle製
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=OraOLEDB.Oracle;Data Source=[接続文字列];User Id=[ユーザID];Password=[パスワード]
,ODBCプロバイダ ,Driver={Oracle in OraHome92};DBQ=[接続文字列];UID=[ユーザID];PWD=[パスワード]
,JDBC Thinドライバ ,jdbc:oracle:thin:@[ホスト名]:[ポート番号]:[接続するデータベースのSID]
,JDBC OCIドライバ ,"jdbc:oracle:oci8:@[tnsnames.oraに登録されているデータベースサービス名L],[ユーザーID],[パスワード]"
※ODBCプロバイダはバージョンによりドライバ名が変わる
※JDBCの場合、"Class.forName(oracle.jdbc.driver.OracleDriver);"を行う必要がある
!!!Type3 Driver
通信プロトコルドライバ JDBCからのクエリー要求をJavaで記述されたのドライバ内で独自のプロトコルに変換し、それをアプリケーションサーバを通じてデータベースにアクセスするもの。機種依存・データベース依存をせずに軽量なドライバが作成可能だが、中間サーバを挟むためにパフォーマンスに問題が起きる。

!Microsoft製
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=MSDAORA;Data Source=[接続文字列];User Id=[ユーザID];Password=[パスワード]
,ODBCプロバイダ ,Driver={Microsoft ODBC for Oracle};Server=[接続文字列];UID=[ユーザID];PWD=[パスワード]
※ODBCプロバイダで接続する場合、Microsoft Oracle ODBC ドライバ 2.0 と以上バージョンのMicrosoft Data Access Components ( MDAC )のコンポーネントであるバージョン 2.5 が必要になる(と思われる)
!!!Type4 Driver
ネイティブプロトコルドライバJDBCからのクエリー要求をすべてJava上で処理してしまうもの。Java上にデータベースにアクセスするためのすべての機能を乗せる為、ドライバのサイズが大きくなる、パフォーマンスが若干低下する。基本的にTCP/IPでしか利用できないなどの欠点があるがハードウェアとOSに依存しないため移植性に優れている。OracleでいうとthinドライバがTYPE4ドライバに相当する。

!DB2
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=IBMDADB2;DSN=[source];User ID=[user];Password=[password]
,ODBCプロバイダ , 
,JDBC type2 ,jdbc:db2:[DB名]
,JDBC type4 ,jdbc:db2://[ホスト名:ポート番号/DB名]

!PostgreSQL
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=PostgreSQL OLE DB Provider;Data Source=localhost;Location=[データベース];User ID=[ユーザID];Password=[パスワード]
,ODBCプロバイダ ,Driver={PostgreSQL};Server=localhost;Database=[データベース];UID=[ユーザID];PWD=[パスワード];Port=5432;

!Excel
「シート名+$」がテーブル名
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Excelブックのファイルパス];Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"
,ODBCプロバイダ ,Driver={Microsoft Excel Driver (*.xls)};DBQ=[Excelブックのファイルパス]

!CSV
ファイル名がテーブル名
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[CSVファイルの「ディレクトリの」パス];Extended Properties="text;HDR=Yes;FMT=Delimited"
,ODBCプロバイダ ,Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=[CSVファイルの「ディレクトリの」パス]

!MySQL
,ドライバ,接続文字列
,OLE DBプロバイダ , 
,ODBCプロバイダ ,Driver={mySQL ODBC x.xx Driver};Server=[接続先サーバ];Port=3306;Option=131072;Stmt=SET CHARACTER SET SJIS;Database=[データベース];Uid=[ユーザID];Pwd=[パスワード]
,JDBC ,"jdbc:mysql://[host][,failoverhost...][:port]/[database] << [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]..."
※ODBCプロバイダはバージョンによりドライバ名が変わる

!HTML
HTMLのTABLEタグ(title、caption、Table[n])がテーブル
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.html;Extended Properties="HTML Import;HDR=Yes;"
,ODBCプロバイダ , 

!Outlook
各メールフォルダ名がテーブル名。サブディレクトリは「MAPILEVEL=親フォルダ|子フォルダ」
,ドライバ,接続文字列
,OLE DBプロバイダ ,Provider=Microsoft.Jet.OLEDB.4.0;Exchange 4.0;MAPILEVEL=保存フォルダ|;TABLETYPE=0;Database=C:\Documents and Settings\xxx\Local Settings\Temp
,ODBCプロバイダ , 


!!!その他
TYPE1、TYPE2はDBMSのDLLファイルやライブラリファイルを呼び出す形となるため、JVMのメモリー管理外となる。TYPE3、TYPE4についてはJVM上でJavaのクラスとして実装されているためJVM上のガベージコレクションの対象となり管理が行いやすく、流れとしてはTYPE4が主流となっている。

{{category2 データベース}}