ListServlet.java
[ファイル] ListServlet.java
[挿入場所] JSPファイルへの遷移処理前
// データベースアクセス用オブジェクトの生成 BookDAO objDao = new BookDAO(); // 書籍データを全件取得する命令を呼び出し、戻り値を取得する ArrayList<Book> bookList = objDao.selectAll(); // 書籍リストをリクエストスコープに格納 request.setAttribute("keyBookList", bookList);
list.jsp
[ファイル] list.jsp
[挿入場所] <!DOCTYPE html>
の前
<% // リクエストスコープから書籍リストを取得 ArrayList<Book> bookList = (ArrayList<Book>)request.getAttribute("keyBookList"); %>
[ファイル] list.jsp
[挿入場所] 書籍情報の<tr>
タグと入れ替える
<% // 書籍リストから1行ずつデータを取得し表示 for (Book book: bookList) { %> <tr> <td> <a href="/bmsweb/detail?isbn=<%=book.getIsbn()%>"><%=book.getIsbn()%></a> </td> <td><%=book.getTitle()%></td> <td><%=book.getPrice()%>円</td> <td> <a href="/bmsweb/update?isbn=<%=book.getIsbn()%>">更新</a> <a href="/bmsweb/delete?isbn=<%=book.getIsbn()%>">削除</a> </td> </tr> <% } %>
Book.java
[ファイル] Book.java
[挿入場所] 「public class Book {」と「}」の間
// 書籍のISBN private String isbn; // 書籍のタイトル private String title; // 書籍の価格 private int price; /** * 書籍情報(ISBN・タイトル・価格)の初期設定をおこなう(コンストラクタ) */ public Book() { this.isbn = null; this.title = null; this.price = 0; } /** * 書籍のISBNを取得する * * @return 書籍のISBN */ public String getIsbn() { return isbn; } /** * 書籍のISBNを設定する * * @param isbn 設定する書籍のISBN */ public void setIsbn(String isbn) { this.isbn = isbn; } /** * 書籍のタイトルを取得する * * @return 書籍のタイトル */ public String getTitle() { return title; } /** * 書籍のタイトルを設定する * * @param title 設定する書籍のタイトル */ public void setTitle(String title) { this.title = title; } /** * 書籍の価格を取得する * * @return 書籍の価格 */ public int getPrice() { return price; } /** * 書籍の価格を設定する * * @param price 設定する書籍の価格 */ public void setPrice(int price) { this.price = price; }
BookDAO.java
[ファイル] BookDAO.java
[挿入場所] executeUpdate関数の後ろ
/** * DBの書籍情報を格納するbookinfoテーブルから全書籍情報を取得する関数 * * @return 全書籍情報のリスト * * @throws IllegalStateException 関数内部で例外が発生した場合 */ public ArrayList<Book> selectAll() { try { // DB接続 connect(); // 書籍データを全件取得するSQL文を用意 String sql = "SELECT isbn, title, price FROM bookinfo"; // SQL文を発行し、結果セットを取得 ResultSet rs = executeQuery(sql); // 書籍データ格納用のリストオブジェクトを生成 ArrayList<Book> bookList = new ArrayList<Book>(); // 結果セットから1行ずつ書籍データを取得 while (rs.next()) { Book book = new Book(); book.setIsbn(rs.getString("isbn")); book.setTitle(rs.getString("title")); book.setPrice(rs.getInt("price")); bookList.add(book); } // 呼び出し元へ書籍データを返す return bookList; } catch (Exception e) { throw new IllegalStateException(e); } finally { // DB接続解除 disconnect(); } }