前提
Eclipsでjavaを用いて、MYSQLと連動させJSPファイルに商品検索結果を表示させたいです。
bkadaiデータベースのproduct_nameテーブルにノートPCを追加し、
eclipsを起動させてPCと入力し、検索を押下しても商品コード、商品名、単価、操作のセルに何も表示されません
発生している問題・エラーメッセージ
エラーメッセージ 何もないです
該当のソースコード
java
package servlet; import java.io.IOException;import java.util.ArrayList; import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import bean.BkadaiBean;import controller.BkadaiController3_1; @WebServlet("/servlet/kensaku3-1")public class BkadaiServlet3_1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { //パラメータnameの値取得 String name = request.getParameter("name"); //配列宣言 ArrayList<BkadaiBean> list = new ArrayList<BkadaiBean>(); /* *nameを元に、商品のを検索する関数の呼び出し、結果をJSPに渡す処理 */ //BkadaiController3_1クラスをインスタンス化する。 BkadaiController3_1 bkadaiController1 = new BkadaiController3_1(); // BkadaiBeanに、BkadaiController3_1よりsearch関数を呼び出し、全検索メソッド実行 list = bkadaiController1.search(name); //検索結果を持ってkensaku3-1.jspにフォワード request.setAttribute("kensaku3-1", list); } catch (IllegalStateException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); // kensaku3-1へ }finally{ //フォワード先の指定 RequestDispatcher list = request.getRequestDispatcher("/kensaku3-1.jsp"); //フォワードの実行 list.forward(request, response); } } }
package controller; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import bean.BkadaiBean; public class BkadaiController3_1 { private static String RDB_DRIVE = "com.mysql.cj.jdbc.Driver"; private static String URL = "jdbc:mysql://localhost/bkadai"; private static String USER = "root"; private static String PASS = "tsukasa617"; //データベース接続を行うメソッド public static Connection getConnection() { try { Class.forName(RDB_DRIVE); Connection con = DriverManager.getConnection(URL, USER, PASS); return con; } catch (Exception e) { throw new IllegalStateException(e); } } // 送信された商品名を元に商品コード、商品名、単価を検索するためのメソッド public ArrayList<BkadaiBean> search(String name) { //変数宣言 Connection con = null; Statement statement = null; //return用オブジェクトの生成 ArrayList<BkadaiBean> list = new ArrayList<BkadaiBean>(); // 商品検索 String sql = "select * from m_product where product_name like '%" + name + "%'"; try { con = getConnection(); statement = con.createStatement(); //SQLをDBへ発行 ResultSet rs = statement.executeQuery(sql); //検索結果を配列に格納 while (rs.next()) { BkadaiBean accountinfo = new BkadaiBean(); accountinfo.setNum(rs.getInt("product_code")); accountinfo.setName(rs.getString("product_name")); accountinfo.setPrice(rs.getInt("price")); list.add(accountinfo); } } catch (Exception e) { throw new IllegalStateException(e); } finally { // 接続の切断 if (statement != null) { try { statement.close(); } catch (SQLException ignore) { } } if (con != null) { try { con.close(); } catch (SQLException ignore) { } } } return list; } }
JSP
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="bean.BkadaiBean"%> <%@page import="java.util.ArrayList,bean.BkadaiBean"%> <% ArrayList<BkadaiBean> list = (ArrayList<BkadaiBean>)request.getAttribute("list"); String error = (String)request.getAttribute("error"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>商品検索</title> </head> <body> <h1>商品検索</h1> <br /> <p>商品名</p> <form action="<%=request.getContextPath() %>/servlet/kensaku3-1"> <input type="text" name="name"> <input type="submit" value="検索"><br /> <table> <tr> <th>商品コード</th> <th>商品名</th> <th>単価</th> <th>操作</th> </tr> <% if(list != null){ for(int i=0;i<list.size();i++){ %> <tr> <td><%= list.get(i).getName() %></td> <td><%= list.get(i).getNum() %></td> <td><%= list.get(i).getPrice() %></td> <td><a href="A.html">編集</a></td> </tr> <% } } %> </table> </form> </body> </html>
BEAN
package bean; import java.io.Serializable; public class BkadaiBean implements Serializable { private String name; private int num; private int price; private int number; public BkadaiBean() { } // 商品名 public void setName(String name) { this.name = name; } public String getName() { return name; } // 商品コード public void setNum(int num) { this.num = num; } public int getNum() { return num; } // 単価 public void setPrice(int price) { this.price = price; } public int getPrice() { return price; } // 数量 public void setNumber(int number) { this.number = number; } public int getNumber() { return number; } }
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
java Ver17
mysql Ver 8.0.27
Eclips Ver 2022-06 (4.24.0)
Tomcat9
0 コメント