[???] / [Java FAQ] / [S133]
S133: JDBC(ドライバ)

[Q1]
Back
アプレットで利用できる JDBC ドライバはなんですか? [A-S133-1] TYPE 3 と TYPE 4 の JDBC ドライバです。 詳しいことは #Q-133-2 を参照してください。
[Q2]
Back
JDBC ドライバはどのように分類されていますか? [A-133-2] 4種類にわかれています。 1.ODBC Bridge Driver(TYPE 1) 2.Native-API Partly-Java Driver(TYPE 2) 3.Net Protocol All-Java Driver(TYPE 3) 4.Native Protocol All-Java Driver(TYPE 4) 詳しい説明は、こちらを参照してください。 ・JDBCドライバタイプの簡単な解説 (IJAHO Seminar 97/1/21 NJK Corporation) http://www.njk.co.jp/otg/Ijaho/presen/jdbctype.html また、どのような JDBC ドライバがあるか、欲しいドライバがあるかどうか、 などはこちらのページが役に立つでしょう。 ・JDBC(TM) Data Access API DRIVERS (米Sun のページ) http://industry.java.sun.com/products/jdbc/drivers (参照) ・JDBC Note http://www02.so-net.ne.jp/~kikuta/jdbcnote/jdbcnote.html
[Q3]
Back
JDBCの各バージョンに対応しているDBMSのバージョンはどうなっていますか? [A-S133-3] オラクルについて示します。(1999.5.14) JDBCバージョン 8.0.4 : DBMSバージョン 8.0.4, 8.0.3, 7.3.4 JDBCバージョン 8.0.5 : DBMSバージョン 8.0.5, 8.0.4, 8.0.3, 7.3.4 JDBCバージョン 8.0.6 : DBMSバージョン 8.0.6, 8.0.5, 8.0.4, 8.0.3, 7.3.4 JDBCバージョン 8.1.5 : DBMSバージョン 8.1.5, 8.0.6, 8.0.4, 8.0.3, 7.3.4 (参照) ORACLE JDBC ドライバ http://technet.oracle.co.jp/software/db_connect/jdbc/jdbc.html (注) 2000.10.12 現在は、JDBC 8.1.6.0.1 です。
[Q4]
Back
アプレットをリロードするとJDBCのドライバのロードがSecurityExceptionに なってしまうのはどうしてでしょうか? [A-S133-4] JDK1.1.xでは、リロード時新たなドライバインスタンスがregisterされないか らです。 1回目の実行に登録されたドライバが2回目以降でskipされるのは正しい動作で す。しかし、リロード時に新たなドライバインスタンスがregisterされないよ うです。 (注) JDK1.2 以降は未確認。
[Q5]
Back
なぜ java.sql.Driverは醜い設計なのでしょうか? [A-S133-5] 醜い設計と言えます。 ・java.sql.Driverの実装者は、指示されたとおり、ロード時にインスタンス を生成して登録するような*共通の*コードを毎回書かねばならない。 ・ユーザに直接 Class.forName() の利用を強制する点。 ・一見、「ユーザが何も考えなくてもクラス名を参照しただけで組み込まれる」 ようで、便利なようだが、結局はこの仕組みを理解しないと安心して使えな い。 このため #Q-S133-4 のようなバグが発生しています。 (注) JDK1.2 以降は未確認。APIドキュメントを見ると同様と思われますが。
[Q6]
Back
MS AccessのODBCはJDK 1.2のJDBC-ODBCドライバと相性が悪いのですか? [A-S133-6] 悪いです。Access を利用しないか、他のミドルウェア(例:dbANYWHERE Server) を利用するなどで対処することができます。
[Q7]
Back
Oracle JDBCドライバのバグにはどのようなものがあるでしょうか? [A-S133-7] Oracle JDBC ドライバ 7.3.4.2 (Thin) と 8.0.4.0.5 (Thin) に、 PreparedStatementが動作しないバグがあります。8.0.4.0.6 以降を利用して ください。 (参照) ORACLE JDBC ドライバ http://technet.oracle.co.jp/software/db_connect/jdbc/jdbc.html
[Q8]
Back
SQLJを使う際にはどこに注意したらいいでしょうか? [A-S133-8] sqlj.propertiesファイルの設定に注意しましょう。 このファイルは、SQLJトランスレータ自身のプロパティで、SQLJのオプション やSQL文の構文チェックのためのトランスレート時のDBMS接続のプロパティを 設定します。
[Q9]
Back
Microsoft の Visual J++ で JDBC-ODBC ブリッジが動きませんがどうしたら いいでしょうか? [A-S133-9] 標準の JDBC-ODBC ブリッジではなく、com.ms.jdbc.odbc.JdbcOdbcDriver を 利用してください。
[Q10]
Back
Linux で InterBase を利用したいのですが、JDBC ドライバはどこにあります か? [A-S133-10] #A-S133-2 を参照してください。
[Q11]
Back
Linuxで使えるRDBMS一覧は? [A-S133-11] たくさんあります。以下を参照してください。 (参考) Linux Software Applications http://www.fokus.gmd.de/linux/linux-softw-appl.html#APPL.DAB (注) 本当は、日本語のサポート、JDBCの有無なども含めて列記したいところですが。
[Q12]
Back
Microsoft Access を利用したいのですが、どうしたらいいでしょうか? [A-S133-12] JDBC-ODBC ブリッジと ODBC の設定で利用できます。 JDBC-ODBC ブリッジについては、#A-S133-2 を参照してください。 ODBC の設定は、 1. コントロールパネル内の ODBC データソース アドミニストレータ を起動し、 2. システム DSN タブ内でデータソースを設定してください。 もし、Visual J++ で開発しており問題が起こったら、#A-S133-3 が役に立つ かもしれません。
[Q13]
Back
PostgreSQL を利用したいのですが、どうしたらいいでしょうか? [A-S133-13] 附属の JDBC ドライバで利用できます。 詳細は #A-S133-2 を参照してください。
[Q14]
Back
Microsoft SQL Server を Sun マシン上から利用したいのですが、どうしたら いいでしょうか? [A-S133-14] JDBC-ODBC ブリッジ + Sun マシン用 ODBC もしくは、TYPE 4 の JDBC ドライ バが利用できそうです。 それぞれの JDBC ドライバについては、 #A-S133-2 を参照してください。

Back
contributor: isi
コメントの送り先:Java FAQ BBS