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