【2,000円の講座をテキストにしてみました】 Springboot基礎講座3 〜検索機能とページングと非同期通信〜

本テキストは、Springbootの基礎を学ぶことができるテキストです。
Springboot基礎講座1〜MVCモデルを理解する〜
Springboot基礎講座2 〜DB連携してCRUD実践〜
・Springboot基礎講座3 〜検索機能とページングと非同期通信〜
Springboot基礎講座4 〜ログインとセッション管理とバリデーション〜


本来は、2,000円で開いていた講座の内容を公開していたのを、テキストにして、一部有料(390円)で公開しています。

今ままでの講座
本講座は、今までの講座の続きとなっております。



本編

本講座では、Springbootを使ってページ繊維や非同期通信を開発していきます。

1. 検索機能の追加

それでは、検索機能を追加します。

そもそも検索機能とは、以下のような検索ボックスに”キーワード”を入れてそれに部分一致する値を取得します。

スクリーンショット 2020-04-29 4.07.29

今回は、該当するキーワードが記事内容に含まれるリストを取得して表示するプログラムを作成します。

    1.1 レポジトリの追加

全ての記事を取得するプログラムは、以下のプログラムでした。

ArticleRepository.java

List<Article> findAll();

postTextにあるキーワードが含まれている場合のメソッドは、以下のように定義をします。

List<Article> findByPostTextLike(String word);

以下の形でカラムに対してLike検索を行うことができます。

findカラム名Like(引数)

このように定義をするだけで、JpaRepositoryのインターフェースを実装するクラスが具体的な処理のメソッドをよしなに読み取って実装してくれます。

    1.2 検索の種類

他にもいろいろな値の取得のやり方があるので紹介します。

findByカラム名(hoge):カラム=hogeのデータを取得
findByカラム名LessThan(hoge):カラムがhogeより小さいデータを取得
findByカラム名GreaterThan(hoge):カラムがhogeより大きいデータを取得
findByカラム名LessThanEqual(hoge):カラムがhoge以下データを取得
findByカラム名GreaterThanEqual(hoge):カラムがhoge以上データを取得
findByカラム1名Andカラム2名(hoge1, hoge2):カラム1=hoge1 かつ カラム2=hoge2のデータを取得
findByカラム1名Orカラム2名(hoge1, hoge2):カラム1=hoge1 または カラム2=hoge2のデータを取得
findByカラム名OrderBy:カラムに対して昇順で取得
findByカラム名OrderByDesc:カラムに対して降順で取得

これらをレポジトリに定義するだけJpaRepositoryがよしなに実装してくれるとても便利な機能なので、覚えておきましょう。


    1.3 サービスの追加

それでは、この処理を呼び出すサービスを追加します。

ここから先は

30,213字

¥ 390

この記事が気に入ったらサポートをしてみませんか?