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

}