JavaからアクセスしたいのでJDBCドライバをインストール、設定しようとしたのですが、Tomcatに組み込むやり方がわかりません。このサイトを参考にしてやったのですが・・・
<< db105.java >>
データベース(0):JDBCドライバ
JavaのプログラムからMySQLのデータベースへ接続するにはJDBCドライバが必要である。
●JDBCドライバのダウンロードとインストール
(1)Webブラウザで、http://www.mysql.com/downloads/に接続する。
ダウンロードするバージョン(MySQL Connector/J 3.0)をクリックする。
(2)http://dev.mysql.com/downloads/connector/j/3.0.h …に切り替わる。Downloadをクリックする。
(3)ダウンロードが始まるので、保存先をデスクトップにする。ファイル(mysql-connector-java-3.0.15-ga.zip)がデスクトップに保存される。
(4)ZIP形式のファイル(mysql-connector-java-3.0.15-ga.zip)を解凍する。デスクトップ上のディレクトリ(mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga)内のファイル(mysql-connector-java-3.0.15-ga-bin.jar)にJDBCドライバが存在する。
(5)JDBCドライバを環境変数CLASSPATHに追加する。
SET CLASSPATH=%CLASSPATH%;c:\mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga-bin.jar;.
ただし、JDBCドライバは、
c:\mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga-bin.jarに存在する。
●Tomcatに組み込む。
ファイル(mysql-connector-java-3.0.15-ga-bin.jar)を
%CATALINA%\shared\libの下にコピーする。その後、再起動する。
2番目の黒丸の%CATALINA%\shared\libが全くみつからないです。教えてください~;;
No.9
- 回答日時:
ソースのimport java.sql.*;の下に
import org.gjt.mm.mysql.Driver;
を追加してみましょうか?
それでコンパイルをしてみて、コンパイルできればクラスパスが通ってます。
コンパイルエラーが出たらクラスパスが通ってません。
コンパイル後に実行してみて同様のExceptionが出るのは、コンパイル時と実行時のクラスパスが違うということになります。
この回答への補足
ユーザー環境変数にパスを通し、MySQLのパスワードをなしにしたらできました!今まではシステム環境変数のみにパスを通していたのでできなかったみたいです^^;いろいろとありがとうございました!かなり勉強になりました^^
補足日時:2005/04/27 13:42No.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の発生している箇所です。
この回答への補足
遅くなって申し訳ございません^^;
ソースファイルは、
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
とあれば成功。
この回答への補足
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
この回答への補足
参考のURL通りにやってみましたが、同じようなエラーが出てしまいます。クラスパスの方も問題ありません。コマンドプロンプトでecho~~をやっても、%CLASSPATH%と表示されるだけなんです;;
一応最新のJava、最新のTomcatをインストールしてやってみました。
No.4
- 回答日時:
…
そういうことですか。(^^;A
Tomcatをインストールしていない。
ということでよろしいですね?
>Javaからアクセスしたいので…
というのはどういう意味なのでしょうか?
1.単なるJavaアプリからアクセスしたい。
ということでしたら、Tomcatは必要ないです。
2.WEBアプリを作っていて、そこからアクセスしたい。
ということでしたら、Tomcatが
(…というか、サーブレットを動かすのに「サーブレットコンテナ」というものが必要で、そのサーブレットコンテナの中の1つがTomcatです。ですから別にTomcat以外のサーブレットコンテナでも構いません。)
必要です。
とりあえず1.でしたら、(5)でCLASSPATHを通したことでコンパイル→実行できるはずです。
この回答への補足
1番ですかね^^;ってことは必要ないですよね?
でも・・・ネットに乗ってたサンプルを動かそうとすると
java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver
というエラーがでてしまいます;;
No.3
- 回答日時:
たぶんそれだと思うのですが…
そのSHAREDというフォルダの下に「lib」というフォルダがありませんでしたか?
そのフォルダはTomcatの下にあるフォルダではなかったですか?
↑の2つに該当してればそのフォルダの下libに入れればいいんですけど。
もしTomcatのインストールフォルダでもなく、下にlibフォルダもないのであれば、うーん…
とりあえず、Tomcatのバージョンなど教えてもらえますか?
No.2
- 回答日時:
>環境変数に追加してあるのですが、%CATALINA%と出力されてしまいます。
環境変数に追加してあれば、その値が出るはずなのですが…
でも、この場合は
CATALINAという環境変数にTomcatのインストールフォルダのパスが設定されている。
ということが重要ではなくて、
jarをTomcatのインストールフォルダ\shared\libの下にコピーする。
ということが重要なので、jarをコピーしてTomcatを再起動すれば使えますよ。
もし、Tomcatのインストールフォルダがわからず、
Tomcatのインストールフォルダ\shared\lib
が分からないというのであれば、
スタート→検索→ファイルやフォルダ
で「shared」というフォルダを検索してみてはいかがでしょうか?
No.1
- 回答日時:
おそらくTomcatのインストールフォルダのことだと思います。
Windowsですよね?であれば、
コマンドプロンプトで
echo %CATALINA%
とすれば出てきますよ。
(環境変数に設定してあればですけど…。)
そのまま%CATALINA%と出力された場合は環境変数に設定されてないってことです。
たとえば↓な風になります。
C:\Program Files\Apache Group\Tomcat 4.1
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- MySQL XamppでインストールしたMySQLのフォルダのWinRARでのバックアップについて 1 2022/06/22 18:55
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- PHP ログイン機の付きの掲示板サイトを作りたいです。 2 2022/10/09 04:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブル名が可変の場合のクエ...
-
#1062 - '0' は索引 'PRIMARY' ...
-
【初歩】ラジオボタンをつかっ...
-
テーブル作成です。どこかのス...
-
テーブルのカラム構造だけをコ...
-
int(11)の(11)とは何を意味して...
-
sql文のcount変数について
-
クエリを教えてください select...
-
mysqlがインストールされている...
-
mysqlがインストールされている...
-
htmlコードで書かれた表にphpで...
-
MySQLのテーブル作成で 自信が...
-
データベースのレコード内容が...
-
データベース mysql
-
MAMPで80ポートが使用されている...
-
連続データの入力
-
mysqlでunixtimeによる日付範囲...
-
MySQLのエラーメッセージ(エラ...
-
mysqlのupdate構文についての質...
-
phpMyAdminをCentOS7にインスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
列数が多いと結果が行単位に改...
-
Column '' not found.
-
JDBCの環境変数について
-
mySQLのWindowsXPへのインストール
-
JDBCでMySQLに接続
-
接続ができません
-
Microsoftストアのソフトは特別...
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
ODP.NETのバージョン確認
-
like句を使って日本語を検索す...
-
プライマリーキーの昇順でソー...
-
Float型の時の計算結果がおかしい
-
MySQLカラム名は日本語と英数字...
-
INT型は金額の型に使用するべき...
-
ERROR 1045 (28000) (using pas...
-
VBAで変数内に保持された二次配...
-
postgreSQLのデータ型
-
MySQLの型のサイズ指定で速度は...
-
シングルクォーテーションとダ...
おすすめ情報