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

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

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

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

Java

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

Q&A

解決済

jspを使用して、MySQLに入力したデータを表示したい

ooood
ooood

総合スコア2

MySQL

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

Java

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

1回答

0グッド

0クリップ

464閲覧

投稿2022/10/09 07:48

編集2022/10/09 09:52

jspを使用して、MySQLに入力したデータを表示したい

jspを使用して、MySQLに入力したデータを表示したいが、
jspにインポートされた ListBean は見つかりませんとエラーメッセージが発生しました。

実現したいこと

MySQLにデータは入力済み

発生している問題・エラーメッセージ

ListBean は見つかりません

list.jsp

jsp

1<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<%@ page import="java.util.*"%> 3<%@ page import="ListBean" %> 4<html> 5<head> 6 <title>ユーザ一覧</title> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8</head> 9<body> 10 <% ArrayList<ListBean> list =(ArrayList<ListBean>)request.getAttribute("list"); %> 11 <%--タイトル行を作成する --%> 12 13 ユーザ一覧<br> 14 <table border="1"> 15 <tr align="center"> 16 <td>ID</td> 17 <td>NAME</td> 18 <td>AGE</td> 19 </tr> 20 <%--リストからユーザ情報を取り出し、データ行を作成する --%> 21 <% for(int i =0; i<list.size();i++){ %> 22 <tr align="center"> 23 <td><%= list.get(i).getId() %></td> 24 <td><%= list.get(i).getName() %></td> 25 26 </tr> 27 <% } %> 28 </table> 29</body> 30</html>

ListDao.java

java

1import java.sql.PreparedStatement; 2import java.sql.ResultSet; 3import java.util.ArrayList; 4public class ListDao extends DBAccess { 5 6 public ArrayList<ListBean> getUserList() { 7 8 ArrayList<ListBean> list = new ArrayList<ListBean>(); 9 10 //SQL文を作成する 11 String sql = "SELECT * FROM employee"; 12 13 try { 14 15 //Connectionオブジェクトを取得する 16 connect(); 17 //ステートメントを作成する 18 PreparedStatement ps = getConnection().prepareStatement(sql); 19 //SQLを発行する 20 ResultSet rs = ps.executeQuery(); 21 22 //ResultSetからbeanにユーザ情報を設定する 23 while (rs.next()) { 24 ListBean bean = new ListBean(); 25 bean.setId(rs.getString("id")); 26 bean.setName(rs.getString("name")); 27 28 list.add(bean); 29 } 30 31 } catch (Exception e) { 32 e.printStackTrace(); 33 } finally { 34 disconnect(); 35 } 36 return list; 37 } 38} 39

ListBean.java

java

1 2import java.io.Serializable; 3 4public class ListBean implements Serializable { 5 6 private String id; 7 private String name; 8 9 10 public String getId() { 11 return id; 12 } 13 14 public void setId(String id) { 15 this.id = id; 16 } 17 18 public String getName() { 19 return name; 20 } 21 22 public void setName(String name) { 23 this.name = name; 24 } 25 26 27 28}

ListServlet.java

java

1import java.io.IOException; 2 3import javax.servlet.RequestDispatcher; 4import javax.servlet.ServletException; 5import javax.servlet.http.HttpServlet; 6import javax.servlet.http.HttpServletRequest; 7import javax.servlet.http.HttpServletResponse; 8 9public class ListServlet extends HttpServlet { 10 public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 11 doPost(req, res); 12 } 13 14 public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 15 16 //DAOをインスタンス化する 17 ListDao dao = new ListDao(); 18 //リクエストにDAOで取得したユーザ情報をセットする 19 req.setAttribute("list", dao.getUserList()); 20 21 RequestDispatcher rd = req.getRequestDispatcher("/web/list.jsp"); 22 rd.forward(req, res); 23 } 24} 25

Mysql

1 2+--------+------------+---------+---------+ 3| emp_id | emp_name | type_id | post_id | 4+--------+------------+---------+---------+ 5| 10001 | ccccccccccc | 1 | 2 | 6+--------+------------+---------+---------+

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

1

ベストアンサー

メソッド getId() は型 ListBean で未定義です

エラーの通り、getId()はありませんよ。
idを返しているのはgetString()というメソッドです。

自前で書くと抜けやミスが出るので、Lombokなどのライブラリを利用されたほうが良いと思います。

投稿2022/10/09 07:59

m.ts10806

総合スコア80038

ooood😄を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

2022/10/09 23:12

こちらの回答が複数のユーザーから「攻撃的な表現などを含む不快な回答」という指摘を受けました。

回答へのコメント

ooood

2022/10/09 08:15

ご回答ありがとうございます。 public String getString() { return id; } のところは、直すことが出来ましたが、 <%@ page import="ListBean" %>に対しての「インポートされた ListBean は見つかりません」の エラーが出る場合は、どの様にすればよろしいでしょうか。
m.ts10806

2022/10/09 08:46

そのクラスはルート直下に置いてるのですか? import宣言はJavaクラスに書くのと同じようにルートからのパッケージを正しく書く必要があります。
ooood

2022/10/09 10:20

ご連絡ありがとうございます。 ListBeanをパッケージに入れて、listというパッケージを作成しました。 エラーメッセージは出なかったのですが、 SQLのデータが出ずに、項目名だけが出ました。 なぜでしょうか ユーザ一覧 ID NAME
m.ts10806

2022/10/09 10:32 編集

listという変数の保持する要素数が0件なら1回もfor回りません。
ooood

2022/10/09 10:54

何度も申し訳ございません。 <% for(int i =1; i<list.size();i++){ %>のことはおっしゃっていますでしょうか
m.ts10806

2022/10/09 11:00

はい。forの条件を見ての話です。 ただ、よく見たら1件だけでも回らなそうですね。iが初期値1なら1回もfor内には入りません。
ooood

2022/10/09 12:08

iが初期値1なら1回もfor内には入りません。 ということは、 <% for(int i =3; i<list.size();i++){ %>にしてもできないです。
m.ts10806

2022/10/09 20:18 編集

ArrayListはadd時に番号指定してない限り0始まりです。 そのコードだと3からカウント開始し、リストのサイズが3未満のときにループに入り、iをカウントアップしていくわけですから、 リストのサイズが3より大きくないとforの中に入りません。 iは0から開始するのが妥当です。 もちろん、listが想定の値を保持しているか、想定の情報がとれるSQLになっているかは確認してくださいね。 まずはListDao.getUserList() にて、listが想定の値を保持しているかデバッグモードで確認を。
m.ts10806

2022/10/09 19:57 編集

誰かは知らないけど攻撃的な修正依頼ですね。
ooood

2022/10/10 03:12 編集

申し訳ございません。 今回お答え頂きありがとうございました。 お答えを求めすぎました。
m.ts10806

2022/10/10 03:15

特に求めすぎてるとは思ってません。 各機能の意味や役割を理解して使うようにするとよりよいコードが書けるようになると思います。 確かにforを完全に使いこなすのは簡単ではないですし、私も基本定型的な使い方に終止してる方ですが、今回くらいの内容はその定型的な使い方の内なので、まだ理解はしやすいと思いますよ。 がんばってください。
ooood

2022/10/10 03:25

ありがとうございます。 まだまだ未熟で、お言葉に甘えてしましいました。 もう一度やってみようと思います。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

MySQL

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

Java

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