質問編集履歴

2

concon6767

concon6767 score 3

2018/05/21 06:42  投稿

JDBCでClassNotFoundExceptionとmysqlへの接続エラーが解消しません。
### 前提・実現したいこと
JDBCを用いてデータベースの全件表示をしたいです。
しかし、jdbcによる接続エラーが解消されません。
DBviewerでデータベースは作成済みです。
### 発生している問題・エラーメッセージ
ClassNotFoundException
java.sql.SQLException
```
エラーメッセージ
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Class.java:264)
   at fashion.FindAllWardrobe.main(FindAllWardrobe.java:20)
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/mysql
   at java.sql.DriverManager.getConnection(DriverManager.java:689)
   at java.sql.DriverManager.getConnection(DriverManager.java:247)
   at fashion.FindAllWardrobe.main(FindAllWardrobe.java:36)
```
### 該当のソースコード
```java
ソースコード
package fashion;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class FindAllWardrobe {
   public static void main(String args[]) {
       /**
        * メンバ変数を定義
        */
       Connection con = null;
       Statement stmt = null;
       ResultSet res = null;
       try {
           Class.forName("com.mysql.jdbc.Driver");
       } catch (ClassNotFoundException e1) {
           e1.printStackTrace();
       }
       /**
        * URLとSQL文を指定
        */
       String url = "jdbc:mysql://localhost:3306/mysql";
       String user = "○○○";
       String password = "×××";
       String sql = "select * frome wardrobe";
       try {
           //データベースに接続
           con = DriverManager.getConnection(url, user, password);
           //ステートメントの作成
           stmt = con.createStatement();
           //SQL文の実行
           res = stmt.executeQuery(sql);
           //ワードローブの情報を表示
           System.out.println("my wardrobe -----------------------------------------------");  
           while(res.next()) {
               System.out.println(res.getString(1));
               System.out.println(res.getInt(2));
               System.out.println(res.getString(3));
               System.out.println(res.getString(4));
           }
           System.out.println("----------------------------------------------------------END");  
       } catch (SQLException e) {
           e.printStackTrace();
       } finally {
           try {
               //結果セットのクローズ
               if(res != null) {
                   res.close();
               }
               //ステートメントのクローズ
               if(stmt != null) {
                   stmt.close();
               }
               //接続のクローズ
               if(con != null) {
                   con.close();
               }
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
   }
}
```
### 試したこと
最初は、class.fornameは付けていませんでしたが、接続ができなくて付けましたが結局エラーになりました。
### 補足情報(FW/ツールのバージョンなど)
eclipseを利用しています。
ユーザー名とパスワードはあっています。ここでは非公開にしています。
接続urlもeclipseで指定したものと同じです。
  • Java

    16774 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • MySQL

    7428 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Eclipse

    2037 questions

    Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

  • JDBC

    131 questions

    JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

  • SQL

    3229 questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

1

concon6767

concon6767 score 3

2018/05/21 06:40  投稿

JDBCでClassNotFoundExceptionとmysqlへの接続エラーが解消しません。
### 前提・実現したいこと
JDBCを用いてデータベースの全件表示をしたいです。
しかし、jdbcによる接続エラーが解消されません。
DBviewerでデータベースは作成済みです。
### 発生している問題・エラーメッセージ
ClassNotFoundException
java.sql.SQLException
```
エラーメッセージ
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at fashion.FindAllWardrobe.main(FindAllWardrobe.java:20)
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/mysql
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at fashion.FindAllWardrobe.main(FindAllWardrobe.java:36)
```
### 該当のソースコード
```java
ソースコード
package fashion;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class FindAllWardrobe {
public static void main(String args[]) {
/**
* メンバ変数を定義
*/
Connection con = null;
Statement stmt = null;
ResultSet res = null;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
/**
* URLとSQL文を指定
*/
String url = "jdbc:mysql://localhost:3306/mysql";
String user = "○○○";
String password = "×××";
String sql = "select * frome wardrobe";
try {
//データベースに接続
con = DriverManager.getConnection(url, user, password);
//ステートメントの作成
stmt = con.createStatement();
//SQL文の実行
res = stmt.executeQuery(sql);
//ワードローブの情報を表示
System.out.println("my wardrobe -----------------------------------------------");
while(res.next()) {
System.out.println(res.getString(1));
System.out.println(res.getInt(2));
System.out.println(res.getString(3));
System.out.println(res.getString(4));
}
System.out.println("----------------------------------------------------------END");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
//結果セットのクローズ
if(res != null) {
res.close();
}
//ステートメントのクローズ
if(stmt != null) {
stmt.close();
}
//接続のクローズ
if(con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
### 試したこと
最初は、class.fornameは付けていませんでしたが、接続ができなくて付けましたが結局エラーになりました。
### 補足情報(FW/ツールのバージョンなど)
eclipseを利用しています。
ユーザー名とパスワードはあっています。ここでは非公開にしています。
接続urlもeclipseで指定したものと同じです。
  • Java

    16774 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • MySQL

    7428 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Eclipse

    2037 questions

    Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

  • JDBC

    131 questions

    JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

  • SQL

    3229 questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る