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

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

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

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

Eclipse

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

Q&A

解決済

3回答

17614閲覧

eclipseでDBに接続できない

Chandler_Bing

総合スコア673

Java

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

Eclipse

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

0グッド

0クリップ

投稿2019/03/03 05:25

編集2019/03/03 07:48

元の質問名「eclipseでアプリケーション実行が表示されない。」これは単にコンソールを開いていなかっただけでした。

題名の通りですが、 一番下のjavaファイルを実行すると以下のエラーが出ます。どうすれば解決できるでしょうか。
以前にもeclipseからDB接続でハマったことがあります。
java.lang.ClassNotFoundException:

そのハマったコードがこれです。Class.forName("com.mysql.jdbc.Driver");をコメントアウトするとエラーが出ませんが、
元に戻すとエラーが出ます。解決策を教えてください。eclipseもまだまだ初心者です。

Java

1package section316; 2 3//データベースへ接続するクラス 4import java.sql.Connection; 5import java.sql.DriverManager; 6 7public class ConnectDB { 8 9 public static void main(String[] args) throws Exception { 10 11 // データベース接続に使うクラスをロードする 12// Class.forName("com.mysql.jdbc.Driver"); 13 14 // データベースに接続する 15 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:8889/college","tennisuser", "password"); 16 17 System.out.println( 18 "データベースの接続状態:" + con.isClosed()); 19 20 // データベースとの接続を閉じる 21 con.close(); 22 23 System.out.println( 24 "データベースの接続状態:" + con.isClosed()); 25 } 26}

以下4つが今実行しているファイルです。

Java

1package model; 2 3public class Login { 4 private String userId; 5 private String pass; 6 7 public Login(String userId, String pass) { 8 this.userId = userId; 9 this.pass = pass; 10 } 11 12 public String getUserId() { 13 return userId; 14 } 15 16 public String getPass() { 17 return pass; 18 } 19}

Java

1package model; 2 3public class Account { 4 private String userId; 5 private String pass; 6 private String mail; 7 private String name; 8 private int age; 9 10 public Account(String userId, String pass, String mail, 11 String name, int age) { 12 this.userId = userId; 13 this.pass = pass; 14 this.mail = mail; 15 this.name = name; 16 this.age = age; 17 } 18 19 public String getUserId() { 20 return userId; 21 } 22 23 public String getPass() { 24 return pass; 25 } 26 27 public String getMail() { 28 return mail; 29 } 30 31 public String getName() { 32 return name; 33 } 34 35 public int getAge() { 36 return age; 37 } 38}

Java

1package dao; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.PreparedStatement; 6import java.sql.ResultSet; 7import java.sql.SQLException; 8 9import model.Account; 10import model.Login; 11 12public class AccountDAO { 13 public Account findByLogin(Login login) { 14 Connection conn = null; 15 Account account = null; 16 try { 17 // JDBCドライバを読み込む 18 Class.forName("com.mysql.jdbc.Driver"); 19 20 // データベースに接続 21 conn = DriverManager.getConnection("jdbc:mysql://localhost:8889/JavaLogin", "tennisuser", "password"); 22 23 // SELECT文を準備 24 String sql = "SELECT USER_ID, PASS, MAIL, NAME, AGE FROM ACCOUNT WHERE USER_ID = ? AND PASS = ?"; 25 PreparedStatement pStmt = conn.prepareStatement(sql); 26 pStmt.setString(1, login.getUserId()); 27 pStmt.setString(2, login.getPass()); 28 29 // SELECTを実行し、結果表を取得 30 ResultSet rs = pStmt.executeQuery(); 31 32 // 一致したユーザーが存在した場合 33 // そのユーザーを表すAccountインスタンスを生成 34 if (rs.next()) { 35 // 結果表からデータを取得 36 String userId = rs.getString("USER_ID"); 37 String pass = rs.getString("PASS"); 38 String mail = rs.getString("MAIL"); 39 String name = rs.getString("NAME"); 40 int age = rs.getInt("AGE"); 41 42 account = new Account(userId, pass, mail, name, age); 43 } 44 } catch (SQLException e) { 45 e.printStackTrace(); 46 return null; 47 } catch (ClassNotFoundException e) { 48 e.printStackTrace(); 49 return null; 50 } finally { 51 // データベースを切断 52 if (conn != null) { 53 try { 54 conn.close(); 55 } catch (SQLException e) { 56 e.printStackTrace(); 57 return null; 58 } 59 } 60 } 61 // 見つかったユーザーまたはnullを返す 62 return account; 63 } 64}

Java

1package test; 2 3import dao.AccountDAO; 4import model.Account; 5import model.Login; 6 7public class AccountDAOTest { 8 public static void main(String[] args) { 9 testFindByLogin1(); // ユーザーが見つかる場合のテスト 10 testFindByLogin2(); // ユーザーが見つからない場合のテスト 11 } 12 13 public static void testFindByLogin1() { 14 Login login = new Login("minato", "1234"); 15 AccountDAO dao = new AccountDAO(); 16 Account result = dao.findByLogin(login); 17 if (result != null && 18 result.getUserId().equals("minato") && 19 result.getPass().equals("1234") && 20 result.getMail().equals("minato@sukkiri.com") && 21 result.getName().equals("湊 雄輔") && 22 result.getAge() == 23) { 23 System.out.println("findByLogin1:成功しました"); 24 } else { 25 System.out.println("findByLogin1:失敗しました"); 26 } 27 } 28 29 public static void testFindByLogin2() { 30 Login login = new Login("minato", "12345"); 31 AccountDAO dao = new AccountDAO(); 32 Account result = dao.findByLogin(login); 33 if (result == null) { 34 System.out.println("findByLogin2:成功しました"); 35 } else { 36 System.out.println("findByLogin2:失敗しました"); 37 } 38 } 39}

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

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

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

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

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

guest

回答3

0

自己解決

また解決しました。
まずはプロジェクトにMySQLのjarファイルを入れていなかったこと。
次はjdbcの接続の画面で非推奨のものを使用していたこと。

の2点でした。

投稿2019/03/03 08:09

Chandler_Bing

総合スコア673

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

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

0

コンソールを非表示にしておりました。
大変お騒がせしました。

投稿2019/03/03 07:37

Chandler_Bing

総合スコア673

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

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

0

的外れかもしれませんが、

try { Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException ex) { ex.printStackTrace(); }

try catchでくくると良いかも。
私の環境ではtry catchでくくるようにとメッセージが出ます。

<編集>
解決しましたか。的外れでしたすいません。
入れ違いになりました。

投稿2019/03/03 08:14

編集2019/03/03 08:16
shinami

総合スコア334

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問