質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

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

Java

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

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

Q&A

解決済

1回答

7388閲覧

IntelliJ IDEAでMySQLに接続時、ClassNotFoundExceptionが出る

Bicepper

総合スコア11

MySQL

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

Java

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

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

0グッド

2クリップ

投稿2016/07/22 09:24

###前提・実現したいこと
IntelliJ IDEAでMySQLに接続したいです。

###発生している問題・エラーメッセージ
接続を試みると、ClassNotFoundExceptionが出ます。

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

###該当のソースコード

Java

1public class AccountDAO { 2 public Account findByLogin(User user){ 3 4 String drivername = "com.mysql.jdbc.Driver"; 5 String databasename = "jdbc:mysql://localhost:3306/test"; 6 String username = "root"; 7 String password = "123456"; 8 String sql = "SELECT USER_ID, PASS, MAIL, NAME_SEI, NAME_MEI FROM ACCOUNT WHERE USER_ID = ? AND PASS = ? "; 9 10 Connection conn = null; 11 Account account = null; 12 13 try{ 14 Class.forName(drivername); 15 16 conn = DriverManager.getConnection(databasename, username, password); 17 PreparedStatement pStmt = conn.prepareStatement(sql); 18 pStmt.setString(1, user.getUserID()); 19 pStmt.setString(2, user.getPassword()); 20 21 ResultSet rs = pStmt.executeQuery(); 22 23 if(rs.next()){ 24 String userID = rs.getString("USER_ID"); 25 String userpass = rs.getString("PASS"); 26 String mail = rs.getString("MAIL"); 27 String name_Sei = rs.getString("NAME_SEI"); 28 String name_Mei = rs.getString("NAME_MEI"); 29 30 account = new Account(userID, userpass, mail, name_Sei, name_Mei); 31 } 32 }catch(ClassNotFoundException e){ 33 e.printStackTrace(); 34 return null; 35 }catch(SQLException e){ 36 e.printStackTrace(); 37 return null; 38 }finally{ 39 if(conn != null){ 40 try{ 41 conn.close(); 42 }catch(SQLException e){ 43 e.printStackTrace(); 44 return null; 45 } 46 } 47 } 48 return account; 49 } 50} 51

###試したこと
・Project StructureのLibraries、及びGlobal Librariesにmysql-connector-java-5.1.39-binが入っている事を確認しました。
・Libraries → mysql-connector-java-5.1.39-binをクリック時、右に出てくるClassesにmysql-connector-java-5.1.39-bin.jarが入っている事を確認しました。

###補足情報(言語/FW/ツール等のバージョンなど)
実行/デバッグ設定はGlassFish Serverを使用しています。

お手数おかけいたしますが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

サーバーで実行させる場合は、デプロイされるWARファイルにJDBCドライバーを含めるようにするか、
サーバー側の共通ライブラリーにJDBCドライバーを配備しておく必要があります。

WARファイルにJDBCライブラリーを含めるには、
"Project Structure"->"Artifacts"の設定で、
下記画像のようにWEB-INF/libの下にJDBCドライバーのJARファイルが格納されるようにしてください。

イメージ説明

投稿2016/07/23 07:21

argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Bicepper

2016/07/24 15:21

argius様 回答ありがとうございます。 ご指摘いただいた通り修正したところ無事接続されました。 大変勉強になりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問