こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

javaからmysqlに接続ができません。

よろしくお願いします。

JavaからMySqlに接続ができなくて困っています。
<環境>
OS:Windows XP
JDK : jdk1.6.0_02
JDBC Driver for MySQL : mysql-connector-java-5.1.5-bin.jar

Java、MySql単体では正常に動作しているようですが、ドライバを認識できず、JavaからMySqlに接続することができません。

---コード------------------------------------------
import java.net.*;
import java.sql.*;

public class SqlSample1{
String url = "jdbc:mysql://localhost/test_db";
String user = "root";//ユーザ名
String pass = "admin";//パスワード

Connection con = null;

//コンストラクタ
public SqlSample1(){
init();//初期化
fin();//終了
}

//初期化
public void init(){
try{
//ドライバのロード
Class.forName("org.gjt.mm.mysql.Driver");

//MySQLサーバへの接続
con = DriverManager.getConnection(url,user,pass);

System.out.println("Connected!!");
}catch(SQLException e){
System.err.println("SqlException:\n"+e.toString());
}catch(Exception e){
e.printStackTrace();
}
}

//終了:開放
public void fin(){
try{
con.close();

System.out.println("Closed.");
}catch(SQLException e){
System.err.println("SqlException:\n"+e.toString());
}catch(Exception e){
e.printStackTrace();
}

}

public static void main(String args[]){
SqlSample1 ss1=new SqlSample1();
}

}
-----------------------------------------------------------

----エラーメッセージ---------------------------------------
SqlException:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure

Last packet sent to the server was 0 ms ago.
java.lang.NullPointerException
at SqlSample1.fin(SqlSample1.java:41)
at SqlSample1.<init>(SqlSample1.java:18)
at SqlSample1.main(SqlSample1.java:53)
------------------------------------------------------------

※C:\mysql-connector-java-5.1.5の下のmysql-connector-java-5.1.5-bin.jarファイルにCLASSPATHを設定しています。

初心者のためへたくそな質問になっているかもしれません。
申し訳ありません。
上記の情報が不十分な場合はご指摘をお願い致します。

投稿日時 - 2008-09-06 14:04:54

QNo.4307937

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

試してないけど、ざっとみて気になったこと。

MySQLのバージョンがないが、コネクタとバージョンはあっているんだろうか。

またコネクタが5.1.5だとすると、ドライバは、
Class.forName("com.mysql.jdbc.Driver")
が自然と思うが。

それから、見たところ、getConnectionして何もせずにcloseしてないか? あまりに早いclose呼び出しは例外を呼び起こすことがある。実際に、何かのselectを送るとか、データベースにアクセスしてからcloseしてみて、正常にアクセスできるか確認すべきでないだろうか。

投稿日時 - 2008-09-06 21:13:59

あなたにオススメの質問