UpdateServlet.java
[ファイル] UpdateServlet.java
[挿入場所] 「public class UpdateServlet extends HttpServlet {」と「}」の間と入れ替える
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 入力データの文字コードの指定 request.setCharacterEncoding("UTF-8"); // GET送信データ(ISBN番号)の取得 String isbn = request.getParameter("isbn"); // データベースアクセス用オブジェクトの生成 BookDAO objDao = new BookDAO(); // 指定したISBN番号の書籍データを取得する命令を呼び出し、戻り値を取得する Book book = objDao.selectByIsbn(isbn); // 書籍データをリクエストスコープに格納 request.setAttribute("keyBook", book); // JSPファイルに遷移する request.getRequestDispatcher("/view/update.jsp").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 入力データの文字コードの指定 request.setCharacterEncoding("UTF-8"); // POST送信データの取得 String isbn = request.getParameter("isbn"); String title = request.getParameter("title"); String strPrice = request.getParameter("price"); // 更新処理に渡すデータをBookオブジェクトに格納してまとめる Book book = new Book(); book.setIsbn(isbn); book.setTitle(title); book.setPrice(Integer.parseInt(strPrice)); // データベースアクセス用オブジェクトの生成 BookDAO objDao = new BookDAO(); // 書籍データを更新する命令を呼び出す objDao.update(book); // ListServletに遷移する request.getRequestDispatcher("/list").forward(request, response); }
update.jsp
[ファイル] update.jsp
[挿入場所] <!DOCTYPE html>
の前
<% // リクエストスコープから書籍データを取得 Book book = (Book)request.getAttribute("keyBook"); %>
[ファイル] update.jsp
[挿入場所] 書籍情報の<form>
タグと入れ替える
<form action="/bmsweb/update" method="post"> <input type="hidden" name="isbn" value="<%=book.getIsbn()%>"> <table> <tr> <th width="150"></th> <th width="200">変更前情報</th> <th width="200">変更後情報</th> </tr> <tr> <th>ISBN</th> <td><%=book.getIsbn()%></td> <td><%=book.getIsbn()%></td> </tr> <tr> <th>TITLE</th> <td><%=book.getTitle()%></td> <td><input type="text" name="title" value=""></td> </tr> <tr> <th width="150">価格</th> <td><%=book.getPrice()%>円</td> <td><input type="text" name="price" value=""></td> </tr> </table> <input type="submit" value="変更完了" class="button"> </form>
BookDAO.java
[ファイル] BookDAO.java
[挿入場所] insert関数の後ろ
/** * 書籍情報を格納するbookinfoテーブルに存在する、引数で与えられたISBNを持つ書籍情報を、 引数で与えられた書籍情報に変更をおこなう関数 * * @param book 更新する書籍情報のBookオブジェクト * * @throws IllegalStateException 関数内部で例外が発生した場合 */ public void update(Book book) { try { // DB接続 connect(); // 指定されたISBN番号の書籍データを更新するSQL文を用意 String sql = "UPDATE bookinfo SET" + " title = '" + book.getTitle() + "'," + " price = " + book.getPrice() + " WHERE isbn = '" + book.getIsbn() + "'"; // SQL文を発行 executeUpdate(sql); } catch (Exception e) { throw new IllegalStateException(e); } finally { // DB接続解除 disconnect(); } }