簡易書籍検索アプリケーション作成(EntityManager版)
8.2 簡易書籍検索アプリケーション作成(EntityManager版)
8.2.1 アプリケーション概要
1 アプリケーション作成の目的
7.2で作成したプロジェクトをもとに、EntityManagerを利用したより高度なデータベースアクセス方法を学習していきます。
2 簡易書籍検索アプリケーション(EntityManager版)プロジェクト構成(完成状態)
8.2.2 DAOクラスの作成
1 「src/main/java」パッケージ内に「jp.co.f1.spring.bms.dao」パッケージを作成
2 1で作成した「jp.co.f1.spring.bms.dao」パッケージ内に「BookDao.java」を作成
3 2で作成した「BookDao.java」ファイルに以下に示すソースコードを記述する。
■ソースコード
【ファイル名:BookDao.java】
1 | package jp.co.f1.spring.bms.dao; |
3 | import org.springframework.stereotype.Repository; |
5 | import jakarta.persistence.EntityManager; |
6 | import jakarta.persistence.criteria.CriteriaBuilder; |
7 | import jakarta.persistence.criteria.CriteriaQuery; |
8 | import jakarta.persistence.criteria.Root; |
9 | import java.util.ArrayList; |
11 | import jp.co.f1.spring.bms.entity.Book; |
17 | private EntityManager entityManager; |
20 | private CriteriaBuilder builder; |
23 | private CriteriaQuery< Book > query; |
26 | private Root< Book > root; |
31 | public BookDao(EntityManager entityManager) { |
33 | this.entityManager = entityManager; |
35 | builder = entityManager.getCriteriaBuilder(); |
37 | query = builder.createQuery(Book.class); |
39 | root = query.from(Book.class); |
47 | * @return ArrayList< Book > book_list |
49 | public ArrayList< Book > find(String isbn, String title, String price) { |
55 | builder.like(root.get("isbn"), "%" + isbn + "%"), |
56 | builder.like(root.get("title"), "%" + title + "%"), |
57 | builder.like(root.get("price"), "%" + price + "%") |
61 | return (ArrayList< Book >)entityManager.createQuery(query).getResultList(); |
8.2.3 コントローラークラスの修正
1 「BmsController」クラスファイルに以下に示すソースコードを追記する。
■ソースコード
【ファイル名:BmsController.java】
8.2.4 アプリケーションの実行
1 XAMPP(MariaDB)の起動
2 アプリケーションの実行
3 アプリケーションにアクセス(書籍一覧画面)
以下のアドレスから簡易書籍一覧表示アプリケーションにアクセスします。
URL:http://localhost:8080/list
図 8.2 1:アプリケーションアクセス画面(書籍一覧画面)
図 8.2 2:アプリケーションアクセス画面(書籍検索結果)
NEXT>> 8.3 簡易書籍検索アプリケーションの説明(EntityManager版)