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();
}
}