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

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

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

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

Q&A

1回答

9120閲覧

DBから持ってきたレコードを削除

yagiyagi

総合スコア9

Java

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

0グッド

0クリップ

投稿2018/08/24 01:31

簡単なwebアプリケーションをSarvlet/Dao/JSPを使って作成しております。
自分で教科書等、調べながら色々試行錯誤してみたのですが
DBから持ってきたレコードを削除することができません。
また逆にレコードを更新できるようにしたいと考えております。

下記に載せるコードは削除コードです。
全然わかっていないのでわかりにくい部分が多数ですが、すみません。

Dao

1package jp.co.sss.crud.util; 2 3import java.sql.Connection; 4import java.sql.PreparedStatement; 5import java.sql.ResultSet; 6import java.util.ArrayList; 7import java.util.List; 8 9import jp.co.sss.crud.bean.Bean; 10import jp.co.sss.crud.db.DBManager; 11 12public class DeleteDao { 13 14 15 public static List<Bean> delete(String empId){ 16 Connection connection = null; 17 PreparedStatement preparedStatement = null; 18 ResultSet resultSet = null; 19 20 List<Bean> beanList = new ArrayList<>(); 21 22 try{ 23 24 connection = DBManager.getConnection(); 25 26 String sql = "DELETE * FROM employee WHERE emp_id = ? "; 27 28 preparedStatement = connection.prepareStatement(sql); 29 30 preparedStatement.setString(1,empId); 31 32 resultSet = preparedStatement.executeQuery(); 33 34 35 while(resultSet.next()){ 36 Bean empBean = new Bean(); 37 empBean.setEmpId(resultSet.getString("emp_id")); 38 empBean.setEmpName(resultSet.getString("emp_name")); 39 if(resultSet.getInt("gender") == 1){ 40 empBean.setGender("男性"); 41 } else { 42 empBean.setGender("女性"); 43 } 44 45 beanList.add(empBean); 46 } 47 48 } catch (Exception e){ 49 e.printStackTrace(); 50 } finally { 51 DBManager.close(resultSet); 52 DBManager.close(preparedStatement); 53 DBManager.close(connection); 54 } 55 return beanList; 56 } 57 58}

Servlet

1package jp.co.sss.crud.servlet; 2 3import java.io.IOException; 4import java.util.ArrayList; 5import java.util.List; 6 7import javax.servlet.RequestDispatcher; 8import javax.servlet.ServletException; 9import javax.servlet.annotation.WebServlet; 10import javax.servlet.http.HttpServlet; 11import javax.servlet.http.HttpServletRequest; 12import javax.servlet.http.HttpServletResponse; 13 14import jp.co.sss.crud.bean.Bean; 15import jp.co.sss.crud.util.DeleteDao; 16 17 18@WebServlet("/Delete") 19public class Delete extends HttpServlet { 20 21 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 22 23 List<Bean> beanList =new ArrayList<>(); 24 25 String seq = request.getParameter("empId"); 26 beanList = DeleteDao.delete(seq); 27 28 request.setAttribute("beanList",beanList); 29 RequestDispatcher dispatcher = 30 request.getRequestDispatcher("/Delete.jsp"); 31 dispatcher.forward(request, response); 32 } 33 34 35 36}

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

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

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

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

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

m.ts10806

2018/08/24 02:02 編集

削除できていないと判断された根拠は何でしょう?実行した結果起きた現象を具体的に記載していただけますか? deleteの場合の実行結果の結果セットは「影響を受けた行数(つまり削除できた件数)」だったはずなのでwhileでは回せないと思います。
yagiyagi

2018/08/24 02:04

今は何をしてもweb画面(トップページ的な)削除ボタンをおすと404エラーが出て、登録してあるデータを削除する画面に飛ぶこともできません
m.ts10806

2018/08/24 02:13

404は存在しないページへのアクセスですね。formの送信先の指定やweb.xmlの定義など見直してください。この質問内容だけではそこまで判断できないので、分からなければ、jspやHTML側、xmlの設定部分を質問本文に追記してください。今コメントいただいた起きている現象についても同様に質問本文に追記してください。
guest

回答1

0

DELETE文は対象のレコードを取得できませんので、もし内容を取得しておくのなら、DELETE前にSELECTしましょう。

投稿2018/08/24 02:16

A-pZ

総合スコア12011

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問