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

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

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

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

データベース

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

Eclipse

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

Q&A

解決済

1回答

2807閲覧

画面で入力して、データベースの内容を更新したい

退会済みユーザー

退会済みユーザー

総合スコア0

JSP

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

データベース

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

Eclipse

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

0グッド

0クリップ

投稿2020/09/24 02:54

編集2020/09/24 08:03

サーブレットを実行して、画面を表示し、テキストボックス内を更新できるようにするにはdopostにどう書いていけば良いでしょうか❔
下記の画像の「1000,500,500.,,,,」となっているテキストボックス内を更新し保存できるようにしたいです。
JSPとサーブレットを記載してるのでもしわかる方がいれば教えていただきたいです。
イメージ説明

■JSP

<%@page contentType="text/html; charset=UTF-8"%> <%@page import="java.sql.*"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>料金</title> </head> <body> <form action="http://localhost:8080/WebApp/Seisan" metod="post"> <P>コース選択</P> <table> <%@page contentType="text/html; charset=UTF-8"%> <table border="1"> <tr> <forEach var="ryoukin" items="${ryoukin}"> <th><input type="submit" value="コースA"></th> <th><input type="submit" value="コースB"></th> <th><input type="submit" value="コースC"></th> <th><input type="submit" value="OPコースA"></th> <th><input type="submit" value="OPコースB"></th> <th><input type="submit" value="OPコースC"></th> </tr> <tbody> <tr> <td><input type = text value = "${ryoukin.coursea_value}"></td> <td><input type = text value = "${ryoukin.courseb_value}"></td> <td><input type = text value = "${ryoukin.coursec_value}"></td> <td><input type = text value = "${ryoukin.opcoursea_value}"></td> <td><input type = text value = "${ryoukin.opcourseb_value}"></td> <td><input type = text value = "${ryoukin.opcoursec_value}"></td> </forEach> </tr> </table> </thead> <input type="submit" value="清算"> <input type="submit" value="ログアウト"> </table> </form> </body> </html>

■サーブレット

package seisan; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import javax.annotation.Resource; 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 javax.sql.DataSource; import ryoukin.java.ryoukin_beans; import test_ryoukin.ryoukin; /** * Servlet implementation class SeisanServlet */ @WebServlet("/Seisan") public class SeisanServlet extends HttpServlet { private static final long serialVersionUID = 1L; // Define datasource/connection pool for Resource Injection @Resource(name = "jdbc/WebApp") private DataSource dataSource; /** * @see HttpServlet#HttpServlet() */ public SeisanServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ @SuppressWarnings("unused") protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType("text/html; charset=UTF-8"); response.getWriter().append("Served at: ").append(request.getContextPath()); //一覧データ用の変数(ArrayList)を用意する ArrayList<ryoukin> salesList = new ArrayList<>(); // 【料金情報を取得する】 ryoukin_beans ryoukin = null; // ■DB接続 Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; // 接続情報 String url = "jdbc:mariadb://localhost:3306/ryoukin"; String user = "user02"; String password = "user02"; try { // 接続処理 conn = DriverManager.getConnection(url, user, password); // ■検索処理実行 // SQL作成 String sql = "SELECT * FROM seisan"; System.out.println(sql); // SQL準備 ps = conn.prepareStatement(sql); // SQL実行 rs = ps.executeQuery(); // データを読込み、JavaBeansに設定する ryoukin = new ryoukin_beans(); while (rs.next()) { // データ読込 int coursea = rs.getInt("coursea_value"); int courseb = rs.getInt("courseb_value"); int coursec = rs.getInt("coursec_value"); int opcoursea = rs.getInt("opcoursea_value"); int opcourseb = rs.getInt("opcoursea_value"); int opcoursec = rs.getInt("opcoursea_value"); // JavaBeansにデータを設定 ryoukin.setCoursea_value(coursea); ryoukin.setCourseb_value(courseb); ryoukin.setCoursec_value(coursec); ryoukin.setOpcoursea_value(opcoursea); ryoukin.setOpcourseb_value(opcourseb); ryoukin.setOpcoursec_value(opcoursec); } System.out.println(ryoukin); } catch (SQLException e) { // 接続失敗時の処理 e.printStackTrace(); } finally { try { // ■クローズ処理 // 検索結果 if (rs != null) { rs.close(); } // SQL文 if (ps != null) { ps.close(); } // DB接続 if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } // 【表示値を設定する】 request.setAttribute("ryoukin", ryoukin); // 【画面に遷移する】 request.getRequestDispatcher("Newryoukin.jsp").forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //リクエストパラメータを取得 request.setCharacterEncoding("UTF-8"); System.out.println("SeisantServlet.doPost()"); System.out.println("【料金情報一覧】"); // 【文字化け対応】 request.setCharacterEncoding("utf-8"); // ■リクエストデータ取得 String coursea = request.getParameter("coursea_value"); System.out.println("coursea_value"+ coursea); int coursea_value = Integer.parseInt(request.getParameter("coursea_value")); System.out.println(coursea_value); // ■DB接続 Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; // 接続情報 String url = "jdbc:mariadb://localhost:3306/ryoukin"; String user = "user02"; String password = "user02"; try { // 接続処理 conn = DriverManager.getConnection(url, user, password); // ■検索処理実行 // SQL作成 String sql = "INSERT INTO seisan(\r\n" + " coursea_value,\r\n" + " courseb_value,\r\n" + " coursec_value,\r\n" + " opcoursea_value,\r\n" + " opcourseb_value,\r\n" + " opcoursec_value,\r\n" + " upd_username,\r\n" + " upd_datetime\r\n" + ")\r\n" + "VALUES(\r\n" + " ?,\r\n" + " LAST_INSERT_ID(),\r\n" + " ?,\r\n" + " 'user02',\r\n" + " now(),\r\n" + " now()\r\n" + ")"; System.out.println(sql); // SQL準備 ps = conn.prepareStatement(sql); // パラメータ設定 ps.setInt(1, coursea_value); // SQL実行 ps.executeUpdate(); // ■コミット conn.commit(); } catch(SQLException e) { // エラー時の処理 e.printStackTrace();} finally { try { // ■クローズ処理 // 検索結果 if(rs!=null) { rs.close(); } // SQL文 if(ps!=null) { ps.close(); } // DB接続 if(conn!=null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } // ■タスク一覧表示にリダイレクト response.sendRedirect("coursea_value"); doGet(request, response); } }

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

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

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

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

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

A-pZ

2020/09/24 03:20

コードの部分は、コードフォーマッタで編集しなおしてください。
退会済みユーザー

退会済みユーザー

2020/09/24 03:35

申し訳ありません。修正したので宜しくお願いします。
m.ts10806

2020/09/24 04:04

本当に何も書けませんか?
A-pZ

2020/09/24 07:35

入力した内容を保存する処理が全く実装されていないようです。
退会済みユーザー

退会済みユーザー

2020/09/24 08:04

分からないなりに既存のものを参考にしながら書いてみましたが(サーブレットの内容更新しました)、やはりダメでした。 何がいけないのかどう書いていけばいいのか教えていただけると幸いです。
m.ts10806

2020/09/24 08:08 編集

パラメータの数が足りてないとかそんなエラーが出てるのでは。指定したカラムの数と挿入しようとしているデータも数があってないように見えます。 「ダメでした」「うまくいかない」では他者には何も伝わらないので、起きている現象を具体的に記載してください
退会済みユーザー

退会済みユーザー

2020/09/24 08:11

すみません。 現象としては画面は上記の画像のように表示はされるのですが。テキストボックス内に別の値を入力しても保存されませんでした。「1000」となっているテキストボックスないに「2000」と入力し更新、保存されるようにしたいです。
guest

回答1

0

ベストアンサー

ひとまず「直に実行して想定の結果を得られるSQL」が出来てから、アプリケーションプログラムから実行するようにしてください。
直に実行して想定の結果を得られない、エラーとなるようなSQLは当然アプリケーションから実行しても同じ結果となります。

あとはパラメータの個数とか型とか整合性の確認と、わたしたいパラメータが確実にわたっているかのデバッグをしてください。

見た感じ、SQLが正しくないですし、パラメータも合っていません。

投稿2020/09/24 08:11

m.ts10806

総合スコア80861

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問