JSP & Servlet-9日目(DAOを使ったCRUDシステム)

JSP&Servlet

DAOを使って基本的なCRUDを実現しよう。今回は処理の一つ一つがわかりやすいようにファイルを分割し、装飾的要素もつけないで行う。

[作成]
1.MySQLでデータベース[personapp]を作成する。

1CREATE DATABASE personapp
2DEFAULT CHARACTER SET utf8;

2.データベースpersonappに[persons]テーブルを作成する。

1CREATE TABLE persons(
2 id INT PRIMARY KEY AUTO_INCREMENT,
3 name VARCHAR(30),
4 age INT
5 );

3.初期データを挿入しておく

1INSERT INTO persons(name,age)VALUES
2 ("John",30),("Paul",28),("George",27),("Ringo",26);

4.エクリプス。新規動的プロジェクトより「joytas9」を作成する。
5.WEB-INF/lib/の中にJDBC,META-INFの直下にcontext.xmlを配置する。(詳しくは前回の記事参照)

01<?xml version="1.0" encoding="UTF-8" ?>
02<Context>
03  <Resource
04      name="jdbc/jsp"
05      auth="Container"
06      type="javax.sql.DataSource"
07      driverClassName="com.mysql.jdbc.Driver"
08      url="jdbc:mysql://localhost:3306/personapp"
09      connectionProperties="autoReconnect=true;verifyServerCertificate=false;useSSL=false;requireSSL=false;useUnicode=true;characterEncoding=UTF-8;"
10      username="root"
11      password="root"
12      validationQuery="select 1"/>
13 </Context>

6.modelパッケージにPerson.javaを作成する。
●model.Person.java

01package model;
02 
03import java.io.Serializable;
04 
05public class Person implements Serializable{
06  private int id;
07  private String name;
08  private int age;
09  public Person(){}
10  public Person(String name,int age){
11    this.name=name;
12    this.age=age;
13  }
14  public Person(int id,String name,int age){
15    this(name,age);
16    this.id=id;
17  }
18  public int getId() {
19    return id;
20  }
21  public void setId(int id) {
22    this.id = id;
23  }
24  public String getName() {
25    return name;
26  }
27  public void setName(String name) {
28    this.name = name;
29  }
30  public int getAge() {
31    return age;
32  }
33  public void setAge(int age) {
34    this.age = age;
35  }
36   
37 
38}

「Read作成」
7.daoパッケージ内にPersonDAO.javaを作成する。
●dao.PersonDAO.java

01package dao;
02 
03import java.sql.Connection;
04import java.sql.PreparedStatement;
05import java.sql.ResultSet;
06import java.sql.SQLException;
07import java.util.ArrayList;
08import java.util.List;
09 
10import javax.naming.Context;
11import javax.naming.InitialContext;
12import javax.naming.NamingException;
13import javax.sql.DataSource;
14 
15import model.Person;
16 
17public class PersonDAO {
18  private Connection db;
19  private PreparedStatement ps;
20  private ResultSet rs;
21  //接続共通処理
22  private void connect() throws NamingException, SQLException {
23    Context context = new InitialContext();
24    DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/jsp");
25    this.db = ds.getConnection();
26  }
27  //切断共通処理
28  private void disconnect() {
29    try {
30      if (rs != null) {
31        rs.close();
32      }
33      if (ps != null) {
34        ps.close();
35      }
36      if (db != null) {
37        db.close();
38      }
39    } catch (SQLException e) {
40      e.printStackTrace();
41    }
42  }
43  public List<Person> findAll(){
44    List<Person> list=new ArrayList<>();
45    try {
46      this.connect();
47      ps=db.prepareStatement("SELECT * FROM persons");
48      rs=ps.executeQuery();
49      while(rs.next()){
50        int id=rs.getInt("id");
51        String name=rs.getString("name");
52        int age=rs.getInt("age");
53        list.add(new Person(id,name,age));
54      }
55    } catch (NamingException | SQLException e) {
56      e.printStackTrace();
57    }finally{
58      this.disconnect();
59    }
60    return list;
61  }
62}

8.controllerパッケージ内にRead.java(Servlet)を作成

01package controller;
02 
03import java.io.IOException;
04import java.util.List;
05 
06import javax.servlet.RequestDispatcher;
07import javax.servlet.ServletException;
08import javax.servlet.annotation.WebServlet;
09import javax.servlet.http.HttpServlet;
10import javax.servlet.http.HttpServletRequest;
11import javax.servlet.http.HttpServletResponse;
12 
13import dao.PersonDAO;
14import model.Person;
15 
16@WebServlet("/Read")
17public class Read extends HttpServlet {
18  private static final long serialVersionUID = 1L;
19          
20  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
21    PersonDAO dao=new PersonDAO();
22    List<Person> list=dao.findAll();
23    request.setAttribute("list", list);
24    RequestDispatcher rd=request.getRequestDispatcher("/WEB-INF/view/read.jsp");
25    rd.forward(request, response);
26  }
27}

9.WEB-INF/viewフォルダにread.jspを作成
●read.jsp(WEB-INF/view/read.jsp)

01<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="model.*,java.util.*"%>
02<%
03List<Person> list=(List<Person>)request.getAttribute("list");
04%>
05<!DOCTYPE html>
06<html>
07<head>
08<meta charset="UTF-8"/>
09<title>Joytas9</title>
10</head>
11<body>
12<a href="/joytas9/Create">新規登録</a>
13<%if(list != null && list.size() > 0){ %>
14 
15<table border="1">
16<%for(Person p:list){ %>
17 
18<tr>
19 
20<td><%=p.getId() %></td>
21 
22 
23<td><%=p.getName() %></td>
24 
25 
26<td><%=p.getAge() %></td>
27 
28 
29<td><a href="/joytas9/Update?id=<%=p.getId()%>">更新</a>
30<a href="/joytas9/Delete?id=<%=p.getId()%>" onclick="return confirm('id=<%=p.getId()%>を削除してよろしいですか?');">削除</a></td>
31 
32</tr>
33 
34<%} %>
35</table>
36 
37<%} %>
38</body>
39</html>

10.Read.javaをサーバーで実行する。(以下のようになることを確認)

「Create作成」
11.controllerパッケージ内にCreate.javaを作成。
●controller.Create.java

01package controller;
02 
03import java.io.IOException;
04 
05import javax.servlet.RequestDispatcher;
06import javax.servlet.ServletException;
07import javax.servlet.annotation.WebServlet;
08import javax.servlet.http.HttpServlet;
09import javax.servlet.http.HttpServletRequest;
10import javax.servlet.http.HttpServletResponse;
11 
12@WebServlet("/Create")
13public class Create extends HttpServlet {
14  private static final long serialVersionUID = 1L;
15        
16  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
17    RequestDispatcher rd=request.getRequestDispatcher("/WEB-INF/view/create.jsp");
18    rd.forward(request, response);
19  }
20 
21   
22  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
23     
24  }
25 
26}

12.WEB−INF/viewフォルダ内にcreate.jspを作成
●create.jsp(WEB-INF/view/create.jsp)

01<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
02<!DOCTYPE html>
03<html>
04<head>
05<meta charset="UTF-8"/>
06<title>Joytas9</title>
07</head>
08<body>
09 
10<form action="/joytas9/Create" method="post">
11名前:<input type="text" name="name"><br>
12年齢:<input type="number" name="age"><br>
13<button type="submit">登録</button>
14</form>
15 
16</body>
17</html>

13.Create.javaを実行してみて以下のようになることを確認する。

14.フォームから入力されたデータをDBにインサートしよう。まずはPersonDAO.javaに追記する。
●dao.PersonDAO.java(62~74行追記)

01package dao;
02 
03import java.sql.Connection;
04import java.sql.PreparedStatement;
05import java.sql.ResultSet;
06import java.sql.SQLException;
07import java.util.ArrayList;
08import java.util.List;
09 
10import javax.naming.Context;
11import javax.naming.InitialContext;
12import javax.naming.NamingException;
13import javax.sql.DataSource;
14 
15import model.Person;
16 
17public class PersonDAO {
18  private Connection db;
19  private PreparedStatement ps;
20  private ResultSet rs;
21  //接続共通処理
22  private void connect() throws NamingException, SQLException {
23    Context context = new InitialContext();
24    DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/jsp");
25    this.db = ds.getConnection();
26  }
27  //切断共通処理
28  private void disconnect() {
29    try {
30      if (rs != null) {
31        rs.close();
32      }
33      if (ps != null) {
34        ps.close();
35      }
36      if (db != null) {
37        db.close();
38      }
39    } catch (SQLException e) {
40      e.printStackTrace();
41    }
42  }
43  public List<Person> findAll(){
44    List<Person> list=new ArrayList<>();
45    try {
46      this.connect();
47      ps=db.prepareStatement("SELECT * FROM persons");
48      rs=ps.executeQuery();
49      while(rs.next()){
50        int id=rs.getInt("id");
51        String name=rs.getString("name");
52        int age=rs.getInt("age");
53        list.add(new Person(id,name,age));
54      }
55    } catch (NamingException | SQLException e) {
56      e.printStackTrace();
57    }finally{
58      this.disconnect();
59    }
60    return list;
61  }
62  public void insertOne(Person person){
63    try {
64      this.connect();
65      ps=db.prepareStatement("INSERT INTO persons(name,age) VALUES(?,?)");
66      ps.setString(1, person.getName());
67      ps.setInt(2, person.getAge());
68      ps.executeUpdate();
69    } catch (NamingException | SQLException e) { 
70      e.printStackTrace();
71    }finally{
72      this.disconnect();
73    }
74  }
75}

15.controller.Create.javaのdoPost内に追記する。

01package controller;
02 
03import java.io.IOException;
04 
05import javax.servlet.RequestDispatcher;
06import javax.servlet.ServletException;
07import javax.servlet.annotation.WebServlet;
08import javax.servlet.http.HttpServlet;
09import javax.servlet.http.HttpServletRequest;
10import javax.servlet.http.HttpServletResponse;
11 
12import dao.PersonDAO;
13import model.Person;
14 
15@WebServlet("/Create")
16public class Create extends HttpServlet {
17  private static final long serialVersionUID = 1L;
18        
19  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
20    RequestDispatcher rd=request.getRequestDispatcher("/WEB-INF/view/create.jsp");
21    rd.forward(request, response);
22  }
23 
24  //doPost内を追記
25  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
26    request.setCharacterEncoding("UTF-8");
27    String name=request.getParameter("name");
28    String age=request.getParameter("age");
29    Person person=new Person(name,Integer.parseInt(age));
30    PersonDAO dao=new PersonDAO();
31    dao.insertOne(person);
32     
33    response.sendRedirect("/joytas9/Read");
34  }
35 
36}

16.Create.javaから実行し、フォームにPeter,33と入れて登録ボタンを押してみよう。以下のように表示されれば成功だ。

「Update作成」
17.続いて更新処理を作っていこう。まずはPersonDAO.javaにidをもとに1件のデータを取得するfindOne()を追記する。
●dao.PersonDAO.java

01package dao;
02 
03import java.sql.Connection;
04import java.sql.PreparedStatement;
05import java.sql.ResultSet;
06import java.sql.SQLException;
07import java.util.ArrayList;
08import java.util.List;
09 
10import javax.naming.Context;
11import javax.naming.InitialContext;
12import javax.naming.NamingException;
13import javax.sql.DataSource;
14 
15import model.Person;
16 
17public class PersonDAO {
18  private Connection db;
19  private PreparedStatement ps;
20  private ResultSet rs;
21  //接続共通処理
22  private void connect() throws NamingException, SQLException {
23    Context context = new InitialContext();
24    DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/jsp");
25    this.db = ds.getConnection();
26  }
27  //切断共通処理
28  private void disconnect() {
29    try {
30      if (rs != null) {
31        rs.close();
32      }
33      if (ps != null) {
34        ps.close();
35      }
36      if (db != null) {
37        db.close();
38      }
39    } catch (SQLException e) {
40      e.printStackTrace();
41    }
42  }
43  public List<Person> findAll(){
44    List<Person> list=new ArrayList<>();
45    try {
46      this.connect();
47      ps=db.prepareStatement("SELECT * FROM persons");
48      rs=ps.executeQuery();
49      while(rs.next()){
50        int id=rs.getInt("id");
51        String name=rs.getString("name");
52        int age=rs.getInt("age");
53        list.add(new Person(id,name,age));
54      }
55    } catch (NamingException | SQLException e) {
56      e.printStackTrace();
57    }finally{
58      this.disconnect();
59    }
60    return list;
61  }
62  public void insertOne(Person person){
63    try {
64      this.connect();
65      ps=db.prepareStatement("INSERT INTO persons(name,age) VALUES(?,?)");
66      ps.setString(1, person.getName());
67      ps.setInt(2, person.getAge());
68      ps.executeUpdate();
69    } catch (NamingException | SQLException e) { 
70      e.printStackTrace();
71    }finally{
72      this.disconnect();
73    }
74  }
75//ここを追記
76  public Person findOne(int id){
77    Person person=null;
78    try {
79      this.connect();
80      ps=db.prepareStatement("SELECT * FROM persons WHERE id=?");
81      ps.setInt(1, id);
82      rs=ps.executeQuery();
83      if(rs.next()){
84        String name=rs.getString("name");
85        int age=rs.getInt("age");
86        person=new Person(id,name,age);
87      }
88    } catch (NamingException | SQLException e) {
89      e.printStackTrace();
90    }finally{
91      this.disconnect();
92    }
93    return person;
94  }
95   
96}

18.controller内にUpdate.javaを以下のように記述する。
●controller.Update.java

01package controller;
02 
03import java.io.IOException;
04 
05import javax.servlet.RequestDispatcher;
06import javax.servlet.ServletException;
07import javax.servlet.annotation.WebServlet;
08import javax.servlet.http.HttpServlet;
09import javax.servlet.http.HttpServletRequest;
10import javax.servlet.http.HttpServletResponse;
11 
12import dao.PersonDAO;
13import model.Person;
14 
15@WebServlet("/Update")
16public class Update extends HttpServlet {
17  private static final long serialVersionUID = 1L;
18        
19  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
20    String s_id=request.getParameter("id");
21    if(s_id == null){
22      response.sendRedirect("/joytas9/Read");
23    }else{
24      PersonDAO dao=new PersonDAO();
25      Person person=dao.findOne(Integer.parseInt(s_id));
26      request.setAttribute("person", person);
27      RequestDispatcher rd=request.getRequestDispatcher("/WEB-INF/view/update.jsp");
28      rd.forward(request, response);
29    }
30  }
31 
32  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
33     
34  }
35 
36}

19.WEB-INF/viewの中にupdate.jspを以下のように作成する。
●update.jsp(WEB-INF/view/update.jsp)

01<%@ page language="java" contentType="text/html; charset=UTF-8"
02    pageEncoding="UTF-8" import="model.*"%>
03<%
04Person person=(Person)request.getAttribute("person");
05%>
06<!DOCTYPE html>
07<html>
08<head>
09<meta charset="UTF-8"/>
10<title>Joytas9</title>
11</head>
12<body>
13<form action="/joytas9/Update" method="post">
14名前:<input type="text" name="name" value="<%=person.getName() %>"><br>
15年齢:<input type="number" name="age" value="<%=person.getAge() %>"><br>
16<input type="hidden" name="id" value="<%=person.getId() %>"><br>
17<button type="submit">更新</button>
18</form>
19</body>
20</html>

20.Read.javaから実行し、任意のデータの更新リンクを押してみよう。以下のように情報がフォームに反映されれば成功だ。

21.更新ボタンを押したらDBの情報を更新する処理を作る。まずはPersonDAOに追記 (updateOne())
●controller.PersonDAO.java

001package dao;
002 
003import java.sql.Connection;
004import java.sql.PreparedStatement;
005import java.sql.ResultSet;
006import java.sql.SQLException;
007import java.util.ArrayList;
008import java.util.List;
009 
010import javax.naming.Context;
011import javax.naming.InitialContext;
012import javax.naming.NamingException;
013import javax.sql.DataSource;
014 
015import model.Person;
016 
017public class PersonDAO {
018  private Connection db;
019  private PreparedStatement ps;
020  private ResultSet rs;
021  //接続共通処理
022  private void connect() throws NamingException, SQLException {
023    Context context = new InitialContext();
024    DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/jsp");
025    this.db = ds.getConnection();
026  }
027  //切断共通処理
028  private void disconnect() {
029    try {
030      if (rs != null) {
031        rs.close();
032      }
033      if (ps != null) {
034        ps.close();
035      }
036      if (db != null) {
037        db.close();
038      }
039    } catch (SQLException e) {
040      e.printStackTrace();
041    }
042  }
043  public List<Person> findAll(){
044    List<Person> list=new ArrayList<>();
045    try {
046      this.connect();
047      ps=db.prepareStatement("SELECT * FROM persons");
048      rs=ps.executeQuery();
049      while(rs.next()){
050        int id=rs.getInt("id");
051        String name=rs.getString("name");
052        int age=rs.getInt("age");
053        list.add(new Person(id,name,age));
054      }
055    } catch (NamingException | SQLException e) {
056      e.printStackTrace();
057    }finally{
058      this.disconnect();
059    }
060    return list;
061  }
062  public void insertOne(Person person){
063    try {
064      this.connect();
065      ps=db.prepareStatement("INSERT INTO persons(name,age) VALUES(?,?)");
066      ps.setString(1, person.getName());
067      ps.setInt(2, person.getAge());
068      ps.executeUpdate();
069    } catch (NamingException | SQLException e) { 
070      e.printStackTrace();
071    }finally{
072      this.disconnect();
073    }
074  }
075  public Person findOne(int id){
076    Person person=null;
077    try {
078      this.connect();
079      ps=db.prepareStatement("SELECT * FROM persons WHERE id=?");
080      ps.setInt(1, id);
081      rs=ps.executeQuery();
082      if(rs.next()){
083        String name=rs.getString("name");
084        int age=rs.getInt("age");
085        person=new Person(id,name,age);
086      }
087    } catch (NamingException | SQLException e) {
088      e.printStackTrace();
089    }finally{
090      this.disconnect();
091    }
092    return person;
093  }
094  //ここを追記
095  public void updateOne(Person person){
096    try {
097      this.connect();
098      ps=db.prepareStatement("UPDATE persons SET name=?,age=? WHERE id=?");
099      ps.setString(1, person.getName());
100      ps.setInt(2, person.getAge());
101      ps.setInt(3, person.getId());
102      ps.executeUpdate();
103    } catch (NamingException | SQLException e) {
104      e.printStackTrace();
105    }finally{
106      this.disconnect();
107    }
108  }
109}

22.controller.Update.javaにpostの処理を追記する。
●controller.UPdate.java

01package controller;
02 
03import java.io.IOException;
04 
05import javax.servlet.RequestDispatcher;
06import javax.servlet.ServletException;
07import javax.servlet.annotation.WebServlet;
08import javax.servlet.http.HttpServlet;
09import javax.servlet.http.HttpServletRequest;
10import javax.servlet.http.HttpServletResponse;
11 
12import dao.PersonDAO;
13import model.Person;
14 
15@WebServlet("/Update")
16public class Update extends HttpServlet {
17  private static final long serialVersionUID = 1L;
18        
19  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
20    String s_id=request.getParameter("id");
21    if(s_id == null){
22      response.sendRedirect("/joytas9/Read");
23    }else{
24      PersonDAO dao=new PersonDAO();
25      Person person=dao.findOne(Integer.parseInt(s_id));
26      request.setAttribute("person", person);
27      RequestDispatcher rd=request.getRequestDispatcher("/WEB-INF/view/update.jsp");
28      rd.forward(request, response);
29    }
30  }
31   
32  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
33    //以下を追記
34    request.setCharacterEncoding("UTF-8");
35    String name=request.getParameter("name");
36    String age=request.getParameter("age");
37    String id=request.getParameter("id");
38    Person person=new Person(Integer.parseInt(id),name,Integer.parseInt(age));
39    PersonDAO dao=new PersonDAO();
40    dao.updateOne(person);
41     
42    response.sendRedirect("/joytas9/Read");
43  }
44 
45}

23.情報を更新してみよう。以下のように更新が反映されれば成功だ。(Peterの年齢を34に変更した)

「Delete作成」
24.最後に削除の処理を作る。まずはPersonDAOに追記。(deleteOne())
●dao.PersonDAO.java

001package dao;
002 
003import java.sql.Connection;
004import java.sql.PreparedStatement;
005import java.sql.ResultSet;
006import java.sql.SQLException;
007import java.util.ArrayList;
008import java.util.List;
009 
010import javax.naming.Context;
011import javax.naming.InitialContext;
012import javax.naming.NamingException;
013import javax.sql.DataSource;
014 
015import model.Person;
016 
017public class PersonDAO {
018  private Connection db;
019  private PreparedStatement ps;
020  private ResultSet rs;
021  //接続共通処理
022  private void connect() throws NamingException, SQLException {
023    Context context = new InitialContext();
024    DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/jsp");
025    this.db = ds.getConnection();
026  }
027  //切断共通処理
028  private void disconnect() {
029    try {
030      if (rs != null) {
031        rs.close();
032      }
033      if (ps != null) {
034        ps.close();
035      }
036      if (db != null) {
037        db.close();
038      }
039    } catch (SQLException e) {
040      e.printStackTrace();
041    }
042  }
043  public List<Person> findAll(){
044    List<Person> list=new ArrayList<>();
045    try {
046      this.connect();
047      ps=db.prepareStatement("SELECT * FROM persons");
048      rs=ps.executeQuery();
049      while(rs.next()){
050        int id=rs.getInt("id");
051        String name=rs.getString("name");
052        int age=rs.getInt("age");
053        list.add(new Person(id,name,age));
054      }
055    } catch (NamingException | SQLException e) {
056      e.printStackTrace();
057    }finally{
058      this.disconnect();
059    }
060    return list;
061  }
062  public void insertOne(Person person){
063    try {
064      this.connect();
065      ps=db.prepareStatement("INSERT INTO persons(name,age) VALUES(?,?)");
066      ps.setString(1, person.getName());
067      ps.setInt(2, person.getAge());
068      ps.executeUpdate();
069    } catch (NamingException | SQLException e) { 
070      e.printStackTrace();
071    }finally{
072      this.disconnect();
073    }
074  }
075  public Person findOne(int id){
076    Person person=null;
077    try {
078      this.connect();
079      ps=db.prepareStatement("SELECT * FROM persons WHERE id=?");
080      ps.setInt(1, id);
081      rs=ps.executeQuery();
082      if(rs.next()){
083        String name=rs.getString("name");
084        int age=rs.getInt("age");
085        person=new Person(id,name,age);
086      }
087    } catch (NamingException | SQLException e) {
088      e.printStackTrace();
089    }finally{
090      this.disconnect();
091    }
092    return person;
093  }
094   
095  public void updateOne(Person person){
096    try {
097      this.connect();
098      ps=db.prepareStatement("UPDATE persons SET name=?,age=? WHERE id=?");
099      ps.setString(1, person.getName());
100      ps.setInt(2, person.getAge());
101      ps.setInt(3, person.getId());
102      ps.executeUpdate();
103    } catch (NamingException | SQLException e) {
104      e.printStackTrace();
105    }finally{
106      this.disconnect();
107    }
108  }
109  //ここを追記
110  public void deleteOne(int id){
111    try {
112      this.connect();
113      ps=db.prepareStatement("DELETE FROM persons WHERE id=?");
114      ps.setInt(1, id);
115      ps.executeUpdate();
116    } catch (NamingException | SQLException e) {
117      e.printStackTrace();
118    }finally{
119      this.disconnect();
120    }
121  }
122}

25.controller内にDelete.java(Servlet)を作成。
●controller.Delete.java

01package controller;
02 
03import java.io.IOException;
04 
05import javax.servlet.ServletException;
06import javax.servlet.annotation.WebServlet;
07import javax.servlet.http.HttpServlet;
08import javax.servlet.http.HttpServletRequest;
09import javax.servlet.http.HttpServletResponse;
10 
11import dao.PersonDAO;
12 
13@WebServlet("/Delete")
14public class Delete extends HttpServlet {
15  private static final long serialVersionUID = 1L;
16  
17  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
18    String s_id=request.getParameter("id");
19    if(s_id != null){
20      PersonDAO dao=new PersonDAO();
21      dao.deleteOne(Integer.parseInt(s_id));
22    }
23    response.sendRedirect("/joytas9/Read");
24  }
25}

26.Peterを削除してみよう。ダイアログが表示された後、OKで削除されれば成功だ。

コメント

タイトルとURLをコピーしました