ここから本文です

データベースに接続できない(つづき)

dio********さん

2012/3/1315:04:25

データベースに接続できない(つづき)

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=128...
の続きです


コマンドプロンプト上に以下の表示が出ました。

C:\Program Files\Apache Software Foundation\Tomcat 7.0ses>java k0821
java.sql.SQLException: No suitable driver found for jd

at java.sql.DriverManager.getConnection(Driver
at java.sql.DriverManager.getConnection(Driver
at k0821.main(k0821.java:16)
-- Press any key to exit (Input "c" to continue) --

-----------------------------------------------------------------------------------
この後どうして解決したらいいかがわかりません。

ここまでにP470記載の指示のとおり CLASSPATH を

C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\servlet-api.jar;
C:\Program Files\Java\jdk1.7.0_01\lib\derby.jar;.

に通し、Tomcat で共通して使うファイルを、
Tomcat をインストールしたディレクトリの下の lib フォルダに配置せよ とあったので、

C:\Program Files\Java\jdk1.7.0_01\db\lib
の中の derby.jar を
C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib
にコピーして置きました。

補足全てがコピーできてなかったので、書き直します

C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\JSP7\WEB-INF\clas
ses>java k0821
java.sql.SQLException: No suitable driver found for jdbc:derby:cardb;create=true

at java.sql.DriverManager.getConnection(DriverManager.java:604)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at k0821.main(k0821.java:16)

閲覧数:
6,891
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

編集あり2012/3/1409:07:46

Javaで実行するのですから、tomcatのlibパスに入れても意味がありません。
実行するjavaのlibパスにコピーする必要があります。
具体的には、上記でしたら
C:\Program Files\Java\jre7\lib\ext
の下に、
C:\Program Files\Java\jdk1.7.0_01\db\lib
の下の全てのjarファイルをコピーしてください。
derbyの実行にはderby.jarだけでなく、derbytools.jarも必要だったと記憶しています。

補足を受けて:
初心者なのはわかりますが、エラーメッセージを読み取る努力はしましょう。
今回のエラーは
>java.sql.SQLException: No suitable driver found for jdbc:derby:cardb;create=true
というエラーで
エラーが発生したのはプログラムの
at k0821.main(k0821.java:16)
つまり16行目、エラーが発生したメソッドは
at java.sql.DriverManager.getConnection(DriverManager.java:604)
つまりgetConnectionです。
ようするに、何度も書いているとおり、jdbcドライバが読めなかった、というエラーです。
そして、jdbcドライバとしてderbyを使用する場合、必要なライブラリ(jarファイル)は上述のとおり1つではなく、
derby.jar以外にderbytools.jarとかderbynet.jarなどのライブラリも必要なはずです。
これらをclasspath指定できていないなら、classpathの通っている場所にコピーする必要がありますが、
実行しているのはtomcatからではなく、java.exeからですから、tomcatのlibパスにコピーしても意味がありません。
実行するjava.exeのlibパスにjarファイルを配置する必要があります。

実行するjava.exeは、通常jdk下のjava.exeではなく、jre下のjava.exeです。
そのため、jreのlibパスにjarファイルを配置する必要がありますが、通常はlib/extの下に配置します。

ですから、
C:\Program Files\Java\jre7\lib\ext
にjarファイルを配置することになります。

質問した人からのコメント

2012/3/20 23:22:32

最初の質問ページは
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=128... です。

ありがとうございました
まだうまくいってません
他にアドバイスのある方は下記までお願いします
http://blogs.yahoo.co.jp/uuatanabetakahiko/29523158.html

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

[PR]お得情報

ふるさと納税サイト『さとふる』
11/30まで5周年記念キャンペーン中!
Amazonギフト券1000円分当たる!

その他のキャンペーン

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる