[???] /
[Java FAQ] / [S133]
S133: JDBC(ドライバ)
[Q1]
アプレットで利用できる JDBC ドライバはなんですか?
[A-S133-1]
TYPE 3 と TYPE 4 の JDBC ドライバです。
詳しいことは #Q-133-2 を参照してください。
[Q2]
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]
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]
アプレットをリロードするとJDBCのドライバのロードがSecurityExceptionに
なってしまうのはどうしてでしょうか?
[A-S133-4]
JDK1.1.xでは、リロード時新たなドライバインスタンスがregisterされないか
らです。
1回目の実行に登録されたドライバが2回目以降でskipされるのは正しい動作で
す。しかし、リロード時に新たなドライバインスタンスがregisterされないよ
うです。
(注)
JDK1.2 以降は未確認。
[Q5]
なぜ java.sql.Driverは醜い設計なのでしょうか?
[A-S133-5]
醜い設計と言えます。
・java.sql.Driverの実装者は、指示されたとおり、ロード時にインスタンス
を生成して登録するような*共通の*コードを毎回書かねばならない。
・ユーザに直接 Class.forName() の利用を強制する点。
・一見、「ユーザが何も考えなくてもクラス名を参照しただけで組み込まれる」
ようで、便利なようだが、結局はこの仕組みを理解しないと安心して使えな
い。
このため #Q-S133-4 のようなバグが発生しています。
(注)
JDK1.2 以降は未確認。APIドキュメントを見ると同様と思われますが。
[Q6]
MS AccessのODBCはJDK 1.2のJDBC-ODBCドライバと相性が悪いのですか?
[A-S133-6]
悪いです。Access を利用しないか、他のミドルウェア(例:dbANYWHERE
Server) を利用するなどで対処することができます。
[Q7]
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]
SQLJを使う際にはどこに注意したらいいでしょうか?
[A-S133-8]
sqlj.propertiesファイルの設定に注意しましょう。
このファイルは、SQLJトランスレータ自身のプロパティで、SQLJのオプション
やSQL文の構文チェックのためのトランスレート時のDBMS接続のプロパティを
設定します。
[Q9]
Microsoft の Visual J++ で JDBC-ODBC ブリッジが動きませんがどうしたら
いいでしょうか?
[A-S133-9]
標準の JDBC-ODBC ブリッジではなく、com.ms.jdbc.odbc.JdbcOdbcDriver を
利用してください。
[Q10]
Linux で InterBase を利用したいのですが、JDBC ドライバはどこにあります
か?
[A-S133-10]
#A-S133-2 を参照してください。
[Q11]
Linuxで使えるRDBMS一覧は?
[A-S133-11]
たくさんあります。以下を参照してください。
(参考)
Linux Software Applications
http://www.fokus.gmd.de/linux/linux-softw-appl.html#APPL.DAB
(注)
本当は、日本語のサポート、JDBCの有無なども含めて列記したいところですが。
[Q12]
Microsoft Access を利用したいのですが、どうしたらいいでしょうか?
[A-S133-12]
JDBC-ODBC ブリッジと ODBC の設定で利用できます。
JDBC-ODBC ブリッジについては、#A-S133-2 を参照してください。
ODBC の設定は、
1. コントロールパネル内の ODBC データソース アドミニストレータ を起動し、
2. システム DSN タブ内でデータソースを設定してください。
もし、Visual J++ で開発しており問題が起こったら、#A-S133-3 が役に立つ
かもしれません。
[Q13]
PostgreSQL を利用したいのですが、どうしたらいいでしょうか?
[A-S133-13]
附属の JDBC ドライバで利用できます。
詳細は #A-S133-2 を参照してください。
[Q14]
Microsoft SQL Server を Sun マシン上から利用したいのですが、どうしたら
いいでしょうか?
[A-S133-14]
JDBC-ODBC ブリッジ + Sun マシン用 ODBC もしくは、TYPE 4 の JDBC ドライ
バが利用できそうです。
それぞれの JDBC ドライバについては、 #A-S133-2 を参照してください。
contributor: isi
コメントの送り先:Java FAQ BBS