SearchServlet.java
[ファイル] SearchServlet.java
[挿入場所] JSPファイルへの遷移処理前
// 文字コードを設定する
request.setCharacterEncoding("UTF-8");
// GET送信データ(書籍タイトル)の取得
String title = request.getParameter("title");
// データベースアクセス用オブジェクトの生成
BookDAO objDao = new BookDAO();
// 書籍タイトルに該当する書籍データを取得する命令を呼び出し、戻り値を取得する
ArrayList<Book> bookList = objDao.search(title);
// 書籍リストをリクエストスコープに格納
request.setAttribute("keyBookList", bookList);
BookDAO.java
[ファイル] BookDAO.java
[挿入場所] delete関数の後ろ
/**
* 引数の各データを基にDBの書籍情報を格納するbookinfoテーブルから該当書籍データの絞込み検索処理をおこなう関数
*
* @param title 検索対象のTITLE
*
* @return 該当書籍データのリスト
*
* @throws IllegalStateException 関数内部で例外が発生した場合
*/
public ArrayList<Book> search(String title) {
try {
// DB接続
connect();
// 指定された書籍タイトルに該当する書籍データを取得するSQL文を用意
String sql = "SELECT * FROM bookinfo WHERE title LIKE '%" + title + "%'";
// 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();
}
}