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

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

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

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

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

2871閲覧

一部のテーブルのデータが表示できません。

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

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

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2015/10/24 14:45

###前提・実現したいこと
ジャニーズの情報をまとめたWikiみたいなWebアプリを作っていて、
現在データベースの内容を表示しようとしています。

###発生している問題・エラーメッセージ
groupsテーブルの内容を出そうとしていてSQLを実行するとレコードが表示されるのですが、
以下のコードを実行しようとするとResultSet#next()がはじめからfalseになりデータが表示できません。
同じようなコードでchatテーブルの情報なら表示できました。

C:\ProgramData\MySQL\MySQL Server 5.6\data\SHIHO-PC.err
を見ましたが特にエラーは表示されていませんでした。

###ソースコード

java

1Connection conn = null; 2String url = "jdbc:mysql://localhost:3306/body"; 3String user = "root"; 4String password = "password"; 5try { 6 Class.forName("com.mysql.jdbc.Driver").newInstance(); 7 conn = DriverManager.getConnection(url, user, password); 8 Statement stmt; 9 stmt = conn.createStatement(); 10 String sql = "SELECT * FROM groups"; 11 ResultSet rs; 12 rs = stmt.executeQuery(sql); 13 while (rs.next()) { 14 String group_id = rs.getString("group_id"); 15 String group_name = rs.getString("group_name"); 16 out.println("<p>"); 17 out.println(group_id + " <br>" + group_name); 18 out.println("</p>"); 19 out.println("<hr>"); 20 System.out.println("Kis-My-Ft2"); 21 } 22} catch (SQLException e) { 23 // TODO 自動生成された catch ブロック 24 e.printStackTrace(); 25} catch (InstantiationException | IllegalAccessException 26 | ClassNotFoundException e) { 27 // TODO 自動生成された catch ブロック 28 e.printStackTrace(); 29}

###補足情報(言語/FW/ツール等のバージョンなど)
開発環境は以下の通りです。

  • Eclipce 4.4.1
  • Tomcat 8
  • MySQL Server 5.6

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

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

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

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

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

guest

回答1

0

ベストアンサー

Servletではなく、単純なJavaクラスとして同様のソースコードで実行したところ、提示いただいたソースコードは正しく動作するようです。
(取得データは標準出力に出力しています)

検証ソース

もしかしたら、ソースコードの問題ではないのかもしれません。
以下が可能性として考えられますので、確認してみてください。

  • groupsテーブルへ登録しているデータのcommit忘れ

commitを忘れていると、insertしたセッション以外からはselectでデータを参照できません。

  • SQLで確認しているユーザとソースコードに設定されているユーザの違い

ユーザや接続先スキーマが異なると想定した結果にならないことがあります。(データが有るはずなのにない、等)

  • データは正しく取得できているが表示上見えない

これはあまり考えられないかもしれませんが、ブラウザで見ると表示されていないが、htmlソースを見てみると表示されている場合があります。(該当部分以外のhtml記述ミスやコメントアウトなど)

  • SQL実行以外のエラーが発生していて表示されない

while(rs.next())のループ内にデバックソース(System.out.println("ループ IN");など)を記述してwhile文に正しく入っているか確認すると良いかと思います。思いもよらないExceptionが発生していてcatch句に制御が移っているかもしれません。

投稿2015/10/25 06:38

takyafumin

総合スコア2335

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

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

退会済みユーザー

退会済みユーザー

2015/10/25 11:50

コミットしたらできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問