• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JDBCドライバについて)

JDBCドライバのインストールと設定方法

このQ&Aのポイント
  • JavaからアクセスするためにはJDBCドライバのインストールが必要です。
  • JDBCドライバのダウンロードとインストール手順を説明します。
  • TomcatへのJDBCドライバの組み込み方法についても解説します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.10

おっ、解決したみたいですね。 なんかあまり役に立てなかったですけど、 解決してよかったです。

その他の回答 (9)

回答No.9

ソースのimport java.sql.*;の下に import org.gjt.mm.mysql.Driver; を追加してみましょうか? それでコンパイルをしてみて、コンパイルできればクラスパスが通ってます。 コンパイルエラーが出たらクラスパスが通ってません。 コンパイル後に実行してみて同様のExceptionが出るのは、コンパイル時と実行時のクラスパスが違うということになります。

kuninari
質問者

補足

ユーザー環境変数にパスを通し、MySQLのパスワードをなしにしたらできました!今まではシステム環境変数のみにパスを通していたのでできなかったみたいです^^;いろいろとありがとうございました!かなり勉強になりました^^

回答No.8

う~ん… 頂いたソースと、自分もmySQLのJDBCドライバをダウンロードして、実行したところ、とりあえずドライバのロードはできました。 その後DBへ接続できない←当たり前ですね。(笑) とExceptionが発生しました…。 くどいようですが、コマンドプロンプトから java HelloWorldJDBCMySQL と実行しているのですよね??? EclipseなどのIDE上で実行しているのではないですよね??? Eclipseなどで実行している場合、Eclipseが実行するときのクラスパスを別途設定しないといけなかったような気がします。

回答No.7

>setを実行したところ、… そうですか…ではCLASSPATHは通ってるようですね…。 ClassNotFoundExceptionってことはコンパイルは通ってるってことですよね? どうやって実行してます? #4で 1.単なるJavaアプリからアクセスしたい。 ということですから 例えば public class hoge{   public static void main(String args[]){     //ドライバをロード     …     //接続する     …     //SELECTする   } } ↑みたいなクラスを作ってコンパイルして、コマンドプロンプトから java hoge と実行しているんですよね? そうすると java.lang.ClassNotFoundException… が出力されるんですよね? 出来たらソースファイル(~.java)を載せてもらえます? あと、ClassNotFoundExceptionが出るときに他にもっとメッセージ出てて、質問者さんの作ったjavaファイルの行番号が出てません? そこがClassNotFoundExceptionの発生している箇所です。

kuninari
質問者

補足

遅くなって申し訳ございません^^; ソースファイルは、 import java.sql.*; public class HelloWorldJDBCMySQL { public static void main(String[] args) { try { // ドライバクラスをロード Class.forName("org.gjt.mm.mysql.Driver"); // MySQLの場合 // データベースへ接続 String url = "jdbc:mysql:///hellodb?useUnicode=true&characterEncoding=SJIS"; Connection con = DriverManager.getConnection(url); // ステートメントオブジェクトを生成 Statement stmt = con.createStatement(); String sql = "SELECT * FROM HELLO_WORLD_TABLE"; // クエリーを実行して結果セットを取得 ResultSet rs = stmt.executeQuery(sql); // 検索された行数分ループ while(rs.next()){ // NOを取得 int no = rs.getInt("NO"); // 言語を取得 String lang = rs.getString("LANGUAGE"); // メッセージを取得 String msg = rs.getString("MESSAGE"); // 表示 System.out.println(no + " " + lang + " " + msg); } // データベースから切断 stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } } エラーは、 Exception inthread "main"java.lang.NoClassDefFoundError: HelloWorldJDBCMySQL です。

回答No.6

Tomcatは必要ないのでは? (#4の回答に対する補足より) コマンドプロンプトで set とだけ入力してENTERすると、文字がいっぱいでてきますよね? その中に 1. CLASSPATH=C:\j2sdk\~ と色々でてきていますか? その中に 2. [javaインストールフォルダ]\bin と([]の中身は質問者さんのPCにより変わります。) 3. c:\mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga-bin.jar がありますよね? 1.2.3.が全てあれば、とりあえず、CLASSPATHは通っています。 もしうまくいかないようでしたら、 OS、javaのバージョンなどを教えていただけますか? とりあえず、Windows XP Proの場合の環境変数の設定の仕方を書いておきます。 1. スタート→設定→コントロールパネル でコントロールパネルを開き、 その中のシステムにカーソルを合わせてENTER。 (もしくはデスクトップのマイコンピュータを右クリックして、プロパティをクリックする。) 2. システムのプロパティダイアログの 詳細設定タブをクリックする。 3. 環境変数ボタンを押す。 4. システム環境変数の中のところから CLASSPATH を選択して編集ボタンを押す。 5. システム変数の編集ダイアログの 変数値 の末尾に ;c:\mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga-bin.jar を追加すしてOKボタンを押す。 (先頭のセミコロンを忘れずに) 6. あとは全てのダイアログでOKを押して閉じていく。 7. 新しくコマンドプロンプトを起動して set と入力してENTERを押して表示される文字列の中に CLASSPATH=…省略…;c:\mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga-bin.jar とあれば成功。

kuninari
質問者

補足

setを実行したところ、1,2,3全てありました。 しかしやっぱりできません;; OS:Microsoft Windows 2000 5.00.2195 Service Pack 4 Java:jdk1.5.0_02 です。

回答No.5

いやはや、そういうことでしたら参考URLのページが参考になる予感です。 (DBのテーブル名、URLなどはご自身の環境に合わせて修正して下さいね。) java.lang.ClassNotFoundException は(5)のクラスパスにjarの記述を追加していれば出ないと思われますが…。 コマンドプロンプトで echo %CLASSPATH% とするとJDBCのjarへのパスがどこかに表示されますよね?

参考URL:
http://www.hellohiro.com/jdbcmysql.htm
kuninari
質問者

補足

参考のURL通りにやってみましたが、同じようなエラーが出てしまいます。クラスパスの方も問題ありません。コマンドプロンプトでecho~~をやっても、%CLASSPATH%と表示されるだけなんです;; 一応最新のJava、最新のTomcatをインストールしてやってみました。

回答No.4

… そういうことですか。(^^;A Tomcatをインストールしていない。 ということでよろしいですね? >Javaからアクセスしたいので… というのはどういう意味なのでしょうか? 1.単なるJavaアプリからアクセスしたい。 ということでしたら、Tomcatは必要ないです。 2.WEBアプリを作っていて、そこからアクセスしたい。 ということでしたら、Tomcatが (…というか、サーブレットを動かすのに「サーブレットコンテナ」というものが必要で、そのサーブレットコンテナの中の1つがTomcatです。ですから別にTomcat以外のサーブレットコンテナでも構いません。) 必要です。 とりあえず1.でしたら、(5)でCLASSPATHを通したことでコンパイル→実行できるはずです。

kuninari
質問者

補足

1番ですかね^^;ってことは必要ないですよね? でも・・・ネットに乗ってたサンプルを動かそうとすると java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver というエラーがでてしまいます;;

回答No.3

たぶんそれだと思うのですが… そのSHAREDというフォルダの下に「lib」というフォルダがありませんでしたか? そのフォルダはTomcatの下にあるフォルダではなかったですか? ↑の2つに該当してればそのフォルダの下libに入れればいいんですけど。 もしTomcatのインストールフォルダでもなく、下にlibフォルダもないのであれば、うーん… とりあえず、Tomcatのバージョンなど教えてもらえますか?

kuninari
質問者

補足

libフォルダはありません。VC6というフォルダの下にありました。Tomcatとというものが何なのかが全くわかりません;;

回答No.2

>環境変数に追加してあるのですが、%CATALINA%と出力されてしまいます。 環境変数に追加してあれば、その値が出るはずなのですが… でも、この場合は CATALINAという環境変数にTomcatのインストールフォルダのパスが設定されている。 ということが重要ではなくて、 jarをTomcatのインストールフォルダ\shared\libの下にコピーする。 ということが重要なので、jarをコピーしてTomcatを再起動すれば使えますよ。 もし、Tomcatのインストールフォルダがわからず、 Tomcatのインストールフォルダ\shared\lib が分からないというのであれば、 スタート→検索→ファイルやフォルダ で「shared」というフォルダを検索してみてはいかがでしょうか?

kuninari
質問者

補足

検索してみましたが「SHARED」というフォルダしか出てきませんでした。これなのでしょうか?

回答No.1

おそらくTomcatのインストールフォルダのことだと思います。 Windowsですよね?であれば、 コマンドプロンプトで echo %CATALINA% とすれば出てきますよ。 (環境変数に設定してあればですけど…。) そのまま%CATALINA%と出力された場合は環境変数に設定されてないってことです。 たとえば↓な風になります。 C:\Program Files\Apache Group\Tomcat 4.1

kuninari
質問者

補足

環境変数に追加してあるのですが、%CATALINA%と出力されてしまいます。

関連するQ&A