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

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

ただいまの
回答率

90.99%

  • SQL

    2012questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • 配列

    453questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

  • servlet

    395questions

    Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

  • Java EE

    353questions

    Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

  • for

    177questions

    for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

ServletにてUPDATE文で値の更新ができない

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 201

ggpw012857

score 1

研修でjavaを勉強しています。
JSPで入力した複数の値をUPDATE文でDBに更新したいのですが、下記のソースでは全く値が変わりません。
イメージとしては12カ月分の値を4月から順番にDBにアップデートしていきたいです。
エラーメッセージも出なくて困っています。
どうかご教授頂けないでしょうか。
よろしくお願いします。

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

なし

該当のソースコード

package servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.stream.Stream;

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;

/**
 * Servlet implementation class Result
 */
@WebServlet("/Test")
public class Confirm extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Confirm() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String test1[] = request.getParameterValues("test1");
        int test1[] = Stream.of(test1).mapToInt(Integer::parseInt).toArray();
        String test2[] = request.getParameterValues("test2");
        int test2[] = Stream.of(test2).mapToInt(Integer::parseInt).toArray();
        String test3[] = request.getParameterValues("test3");
        int test3[] = Stream.of(test3).mapToInt(Integer::parseInt).toArray();
        String test4[] = request.getParameterValues("test4");
        int test4[] = Stream.of(test4).mapToInt(Integer::parseInt).toArray();
        String test5[] = request.getParameterValues("test5");
        int test5[] = Stream.of(test5).mapToInt(Integer::parseInt).toArray();
        String test6[] = request.getParameterValues("test6");
        int test6[] = Stream.of(test6).mapToInt(Integer::parseInt).toArray();

        try {
            String DRIVER_NAME = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
            String JDBC_URL = "jdbc:sqlserver://localhost:1433;DatabaseName=testSUM";
            String DB_USER = "sa";
            String DB_PASS = "";
            Connection conn = null;
            Class.forName(DRIVER_NAME);

            conn = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS);

            String[] month = { "04", "05", "06", "07", "08", "09", "10", "11", "12", "01", "02", "03" };
            for (int i = 0; i < month.length; i++) {
                String sql = "update TEST set " + "test1='" + test1[i] + "', " + "test2='" + test2[i]
                        + "', " + "test3='" + test3[i] + "', " + "test4='" + test4[i] + "', "
                        + "test5='" + test5[i] + "', " + "test6='" + test6[i] + "' "
                        + "where YM BETWEEN '2016-04-01' AND '2017-03-01' AND ID = 5100";

                Statement stmt = conn.createStatement();
                stmt.executeUpdate(sql);
            }

            RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/5100.jsp");
            dispatcher.forward(request, response);

        } catch (

        SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

試したこと

補足情報(言語/FW/ツール等のバージョンなど)

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • tkturbo

    2017/10/19 13:55

    doPostに更新処理が書いてあるが、doGetに更新処理がない。method=postで正しくアクセスしてますか?

    キャンセル

  • ggpw012857

    2017/10/19 13:58

    今のところdoGetは使用していません。method=postで正しくアクセスは出来ています。

    キャンセル

  • tkturbo

    2017/10/19 14:46

    ではこのServletにアクセスするためのページがあるはずです。そちらもソースコード追加してみてください。

    キャンセル

まだ回答がついていません

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

  • ただいまの回答率 90.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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

  • SQL

    2012questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • 配列

    453questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

  • servlet

    395questions

    Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

  • Java EE

    353questions

    Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

  • for

    177questions

    for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。