- PR -

JDBCドライバ使用するPG実行エラー

投稿者投稿内容
hypergori
会議室デビュー日: 2004/01/20
投稿数: 19
投稿日時: 2004-06-22 19:40
Eclipseで実行しているのであれば、
実行時のクラスパスに追加してはいかががですか?

Eclipseのメニューバーの
実行(R)→実行サブ画面を表示してから、

サブ画面のクラスパス タブ→
デフォルト・クラス・パスの使用のチェックボックスを解除→
外部JARファイルの追加ボタンを押下→ojdbc.jarを追加して
実行。


山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-06-22 19:40
C:/j2sdk1.4.2_04/jre/lib/ojdbc14.jar
C:/Program Files/Java/j2re1.4.2_04/lib/ext/ojdbc14.jar
と2つ通しているのはなぜでしょう?
また、${JRE_HOME}/lib/ext/ に配置しているライブラリについてはクラスパスに通す必要ありません。
#その JDK を使っているのであれば。
どういう意図をもってそこに配置していますか?
意味がわかんなくてもとりあえず手を動かしてみるのも大事ですが、全然理解しないでごりごりトライしてもなかなかゴールにはたどり着けませんよ。

また、環境変数ではなく、-cp または -classpath でパスを指定した場合はどうなりますか?
#違いについては調べてみればわかるはずです。

[ メッセージ編集済み 編集者: インギ 編集日時 2004-06-22 19:42 ]
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-06-22 20:58
#勘違いだったので、削除しました m(__)m

[ メッセージ編集済み 編集者: Cluster 編集日時 2004-06-22 21:01 ]
るふぃ
常連さん
会議室デビュー日: 2004/06/10
投稿数: 23
投稿日時: 2004-06-22 21:20
Class.forName("oracle.jdbc.driver.OracleDriver"); は、
そのjdbcドライバのクラスをロードしているのです。
ECLIPSEで実行しているのであれば、システムライブリーがあるはずですが
その中にojdbc14.jarファイルが入っていますか?入っていなければ、
エラーは、当然です。IPアドレスの後"+"で繋いでますが、確か","だった様な
気がします。
いっきゅう
大ベテラン
会議室デビュー日: 2004/04/04
投稿数: 153
お住まい・勤務地: 兵庫
投稿日時: 2004-06-23 10:50
るふぃさんのご指摘の通りコネクション取得のURLが間違えています。
jdbc:oracle:<drivertype>:<user>/<password>@<database>
上記のような指定でkaokunさんの設定ですと
jdbc:oracle:thin:kgcust/kgcust@199.65.20.24:1521:TEST
となります。

クラスパスの問題もhypergoriさんのご指摘どおりすれば解決するはずですので
上記修正すればConnectionの取得まではOKだと思います。

後、オラクルのドキュメントやJavadocを入手したほうが
上記の問題も含めて良いと思います。
kaokun
会議室デビュー日: 2004/06/04
投稿数: 9
投稿日時: 2004-06-23 11:34
返事が遅くなってすみません

hypergori様ご指摘の通り、クラスパスを追加したら、
Class.forName("oracle.jdbc.driver.OracleDriver"); のところを通りましたが、

いっきゅう様とるふぃ様のご指摘していただいたコネクション取得のURLについてですが、
コンパイルエラーが出ています。
Exlipseでは、jdbc:oracle:thin:kgcust/kgcust@199.65.20.24:1521:TESTを指定すると
下記エラーがでました
==================================
java.lang.Error: コンパイル問題が未解決です。
トークン ":" に構文エラーがあります。正しくは ";" です。

at fighter.DbTest.main(DbTest.java:38)
Exception in thread "main"
==================================

String strConn ="jdbc:oracle:thin:@199.65.20.24:1521:TEST" , "kgcust" , "kgcust"; を指定すると
下記エラーが出ました
==================================
java.lang.Error: コンパイル問題が未解決です。
トークン "" kgcust"" に構文エラーがあります。正しくは "Identifier" です。

at fighter.DbTest.main(DbTest.java:36)
==================================

直接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@199.65.20.24:1521:TEST" , "kgcust" , "kgcust");を
記入した場合はPGを正常に実行しましたが、やはりString 変数の代入が間違っていたのでしょうか、
お手数をおかけ致しますが、よろしくお願いいたします。



[ メッセージ編集済み 編集者: kaokun 編集日時 2004-06-23 11:36 ]
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2004-06-23 12:22
丁寧にやりとりされているとは思いますが、
エラーメッセージはちゃんと読んで、それに対処の上で質問した方がいいと思いますよ。
マシンが出力したものを吟味もせずに掲示板に放り込んでは、「教えて君」でしかないと思います。

引用:

Exlipseでは、jdbc:oracle:thin:kgcust/kgcust@199.65.20.24:1521:TESTを指定すると
下記エラーがでました
==================================
java.lang.Error: コンパイル問題が未解決です。
トークン ":" に構文エラーがあります。正しくは ";" です。



こういうのは、タイプミスである可能性が高いかと。

引用:

String strConn ="jdbc:oracle:thin:@199.65.20.24:1521:TEST" , "kgcust" , "kgcust"; を指定すると
下記エラーが出ました
==================================
java.lang.Error: コンパイル問題が未解決です。
トークン "" kgcust"" に構文エラーがあります。正しくは "Identifier" です。

at fighter.DbTest.main(DbTest.java:36)
==================================


お気づきの通り、変数の代入が間違っています。
Javaには、ひとつの変数にカンマで区切って複数の値を代入するような文法はありません。
コード:

String strConn ="jdbc:oracle:thin:@199.65.20.24:1521:TEST";
String hoge1 = "kgcust"
String hoge2 = "kgcust"
Connection conn = DriverManager.getConnection(strConn , hoge1 , hoge2);


とやりたかったんですか?

[ メッセージ編集済み 編集者: Edosson 編集日時 2004-06-23 12:40 ]

スキルアップ/キャリアアップ(JOB@IT)