- - PR -
コネクション作成
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-02-03 13:33
registerDriver は Class.forName したタイミングでドライバクラスのスタティックイニシャライザが行いますので明示的に行う必要はありません。
| ||||||||
|
投稿日時: 2005-02-03 22:06
J2SE1.4 の DriverManager についてのAPIドキュメントを見ると(以下長文コピーですが)
上部クラス説明欄に Class.forName() の記述があり、「ロード」という言葉が使われています。
registerDriver() のメソッド説明欄には「ロード」と「登録」という言葉が使われています。
上記から推測し「ロードと登録は別々の意味だから Class.forName() したら registerDriver() も必須なのだろう」と思ってました。 ろくに調査もせずJDBC使っていた事になりますね。 何年やってもJavaって奥が深いと思いつつ、インギさんに感謝。 ありがとうございます。 | ||||||||
|
投稿日時: 2005-02-04 02:20
#ちょっと当初の議論からはずれていますが一言だけ
>上記から推測し「ロードと登録は別々の意味だから Class.forName() したら registerDriver() も必須なのだ >ろう」と思ってました。 そうそう。Class.forName() でドライバが登録されるのはちょっと不思議ですよね。 私も良く理解できず、どっかのドライバのソースを見ました。そこで初めて static{}ブロックの構文を覚えたんですが | ||||||||
|
投稿日時: 2005-02-10 09:41
みなさん、ご返答ありがとうございます。
返答が遅れまして申し訳ありません。 この件、解決しました。 こちらのVAN環境が原因で、接続するときに遮断されていたようです。 別セグメントにある全く同じオラクル環境へは接続ができました。 しょうもないことでみなさんへ質問してしまい、申し訳ありませんでした。 また、ありがとうございました。 いろいろと勉強になりました。 >Windows XP SP2 などのクライアント側のファイウォールが影響しているかもしれませんね。 クライアント環境に、ファイヤフォールは入っていません。また、クライアントOSは、Windows2000なので、この件は原因ではないです。 >registerDriver() この記述を追加してやってみましたが、結果は同じでした。 | ||||||||
|
投稿日時: 2006-05-06 05:20
とおりすがりのものです。 この方法で、同じ現象が解決できました。 (ネットサービス名ではなくSIDを記述) ありがとうございました。 |