Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ドライバについて

はじめまして。質問させてください。
JAVAからMySQLのデータベースを表示しようとすると

java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getConnection(DriverManager.java:532)
        at java.sql.DriverManager.getConnection(DriverManager.java:193)
        at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:18)

というエラーが出てしまいます。
CLASSPATHはmysql-connector-java-3.0.10-stable-bin.jarに通しているはずなのですが間違っているのでしょうか?
どなたか解決法があったら教えていただけないでしょうかお願いします。

10

回答

4123

閲覧

10件の回答

評価

0

追記です

Class.forName("org.mysql.jdbc.Driver");
は書いてあります。
HelloWorldJDBCMySQL.java:18なので18行目を見ると
Connection con = DriverManager.getConnection(url);
でした。ちなみに、urlは"jdbc:mysql:///nikkidb?useUnicode=true&characterEncoding=SJIS"になっています。

評価

0

jarファイルを見てみたところ
com.mysql.jdbc.Driver
org.gjt.mm.mysql.Driver
の2つはありましたけど
org.mysql.jdbc.Driver
は入ってないようでした。

評価

0

申し訳ありません。何度か試しているうちにまざってしまっていたらしいです。ですが、下記の二つでも同じエラーでした。
org.gjt.mm.mysql.Driver
com.mysql.jdbc.Driver

評価

0

>通しているはず
これが間違ってるんじゃないの。
例えば他のクラスはnewできる?

評価

0

他のクラスとは、SQL関連のクラス以外でしょうか?
データベースをつながないアプリなら動作しました。
ドライバにつなぐCLASSPATHかドライバ自体がいけないのでしょうか。

評価

0

Class.forName("org.mysql.jdbc.Driver");
が実行できる
ということは
Eclipseで
org.mysql.jdbc.Dr
まで入力してCtrl+スペースすれば
補完できるってことだよ
できないってことは
org.mysql.jdbc.Driverクラスが含まれていないってこと

評価

0

残念ながらEclipseは使用していないのです。

$さんのは、もしかして
Class.forName("org.mysql.jdbc.Driver");
のあとで他のクラスをnewすると言う事だったのでしょうか?
tryでここでエラーが起きたら「ドライバが読みこまれません」とメッセージが出るようにしたところ、メッセージが出力されたので実行できていないと思います。

評価

0

えっと、
なんか噛み合ってないみたいなので…
てんこさんの言ってる意味わかりますか?
Eclipseどうこうの前にそのクラスが
入っていますか?って意味と思いますが…
ちゃんとクラスが存在していてimport出来ていれば
Eclipseで途中まで入力すれば補完できますよってことです。

何よりも前にそのjarファイルに使用しようとしているクラスは入ってますか??
わからないようでしたらjarファイルを解凍してクラスを探してみましょう。

あと見ていないのでなんともいえませんが
stcさんが言っているパッケージとyamaさんの
パッケージが違うのはなぜ?
stcさんの言っているパスなのであれば
yamaさんの記述では普通に無理ですよね??

評価

0

mysql-connector-java-3.0.10-stable-bin.jarを
持ってないので確かめていませんが、クラスパス
は通っているんじゃないでしょうか。
通ってない場合は、例外はClassNotFoundException
となるはず。

>Class.forName("org.mysql.jdbc.Driver");
>のあとで他のクラスをnewすると言う事だったので
>しょうか?

$さんが言っているのは、Class.forNameはやっても
やらなくてもいいので、jarに含まれている他のクラス
をnewしてみれば、クラスパスが通っているかわかる
ということだと思います。

評価

0

urlが違うんじゃないかなぁ。
mysql-connector-java-3.0.10-stable-bin.jar
で接続するときって、
jdbc:mysql://localhost/test
みたいにするのでは…???

全然見当違いだったらゴメンナサイ。
urlが間違っているときに出た(postgreのとき)思い出があったもので。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。