- - PR -
MySQLについて教えてください。
1|2|3|4
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-08-26 14:46
質問があります。
今、MySQLに挑戦しているのですが、JavaのアプリケーションからMySQLのデータベースへ接続するためにJDBCドライバのダウンロードして、CLASSPATHへの追加をして、Javaソースコードを作ったのですが、エラーが出てしまいました。 Webで検索して、いろいろと試してみて、エラーが減ったのですが、残りの4行のエラーがわかりません。 教えていただけないでしょうか。 CLASSPATHは、 C:\mysql-connector-java-3.0.14-production\mysql-connector-java-3.0.14-production-bin.jar です。 No suitable driverとあるので、 Class.forName("org.gjt.mm.mysql.Driver"); に対してのエラーだと思い、CLASSPATHがおかしいのではと考え、・・・Webを見ながら変えてみたのですが、できませんでした。 --------------ここから------------------------------------------- java.sql.SQLException: No suitable driver at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:15) -------------ここまでが表示されたエラーです。------------------------ Javaソースコードは --------------ここから------------------------------------------- import java.sql.*; public class HelloWorldJDBCMySQL { public static void main(String[] args) { try { // ドライバクラスをロード // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // ODBCの場合 Class.forName("org.gjt.mm.mysql.Driver"); // MySQLの場合 // データベースへ接続 // Connection con = // DriverManager.getConnection("jdbc:odbc:helloworld"); // ODBCの場合 // 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(); } } } -------------ここまでです。---------------------------------------- MySQLはWindows (x86)のmysql-4.0.20d-winです。 JDBCドライバは、MySQL Connector/J 3.0.14 をダウンロードしました。 Source and Binaries (zip)の3.0.14-production javaはj2sdk1.4.2_05です。 ご教授お願いいたします。 | ||||||||
|
投稿日時: 2004-08-26 15:10
Class.forName("com.mysql.jdbc.Driver");
にしてみたらどうですか? 自分の場合はマニュアルを読んだら、この方法しか見つからなくてこう書いたところ、うまくいきました。 昔どっかの記事で Class.forName("org.gjt.mm.mysql.Driver"); というのも見たことありますが、自分のとこでも動かなかったうえに、なにがどうちがうかわかりません。 とりあえずClass.forName("com.mysql.jdbc.Driver");で自分の手元のプログラムはうまく動いているので。 _________________ ----------------------------------------- Fedoraに乗り換えました。 http://www.lyricfathom.com/mt/linux/ | ||||||||
|
投稿日時: 2004-08-26 15:26
気になったのでorg.gjt.mm.mysql.Driverのソースを開いてみました。
昔バージョンとの互換性のために残してあるだけのようですね。 ----------------------------------------------- package org.gjt.mm.mysql; import java.sql.SQLException; /** * Here for backwards compatibility with MM.MySQL * * @author Mark Matthews */ public class Driver extends com.mysql.jdbc.Driver { /** * Creates a new instance of Driver * * @throws SQLException if a database error occurs. */ public Driver() throws SQLException { super(); } } ------------------------------------------------------- でも、エラー出るんだから互換じゃないじゃんと思ったり。 謎ですね。 _________________ ----------------------------------------- Fedoraに乗り換えました。 http://www.lyricfathom.com/mt/linux/ | ||||||||
|
投稿日時: 2004-08-26 15:49
このスレなんか参考になるんじゃないかなぁ。ならんか(^^;
>String url = "jdbc:mysql:///hellodb?useUnicode=true&characterEncoding=SJIS"; データベース名は「hellodb」で合ってますか? # JDBCに関する質問は、ここよりJava Solution会議室の方が返答が早いかも。 # 度重なる修正スマソ [ メッセージ編集済み 編集者: たーぞう 編集日時 2004-08-26 16:04 ] | ||||||||
|
投稿日時: 2004-08-26 16:32
返信していただきありがとうございます。
もしや、CLASSPATHは、通っているのではないかと思うのですが・・・・ 「CLASSPATHが通れば、MySQL Connector/Jドライバ・クラスを完全限定名com.mysql.jdbc.Driverで参照できます。ClassNotFoundExceptionが発生するようなら、CLASSPATHの設定が間違っています。」 というのを見つけたのですが・・・そう考えても良いのでしょうか。 あゆかわ様、 Class.forName("com.mysql.jdbc.Driver"); にしたのですが、エラーは消えませんでした。 たーぞう様、 String url = "jdbc:mysql://hellodb?useUnicode=true&characterEncoding=SJIS"; でした。すみません。 --------------ここから------------------------------------------- java.sql.SQLException: No suitable driver at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:15) -------------ここまでが表示されたエラーです。------------------------ このエラーはどうしたら、消えるのでしょうか。 | ||||||||
|
投稿日時: 2004-08-26 16:49
ん・・・?ひょっとして
| ||||||||
|
投稿日時: 2004-08-26 16:55
たーぞう様、返信ありがとうございます。
私も、そう思って、試みたのですができませんでした。 characterEncodingが何か確かめる方法はあるのですか。 my.iniとかに書いてあったりしますか。 見てみたのですが、sjisとはは見当たらなかったのですが・・・。 もしや、初めに設定しておかなくては、いけないとか、ありますか。 [ メッセージ編集済み 編集者: fuu 編集日時 2004-08-26 17:03 ] | ||||||||
|
投稿日時: 2004-08-26 16:56
すいません。おおまちがい情報を書いてしまいました。
互換性ちゃんとありますね。 それから、、、、 たーぞう様: 自分もそれかと、思って今実験しました、、、。 Eclipse上でやってみたせいなのか、同じエラーメッセージではなくNo Classdef Foundだったのですが。 ああああ、、、精進します。 _________________ ----------------------------------------- Fedoraに乗り換えました。 http://www.lyricfathom.com/mt/linux/ |
1|2|3|4
次のページへ»