Spring Boot2.7で日記投稿ウェブアプリ入門の第4回です。テーブルのCRUD操作のために、Spring Data JPAのCrudRepository(JpaRepository)を継承したリポジトリ(Repository)インタフェースの作成をします。Spring Bootの初心者・入門者の方は、参考にしてみてください。
※ 本ページはプロモーションが含まれています。
前回は、Spring Bootの日記投稿ウェブアプリで使用するDBのテーブル構成を決めたり、そのテーブルに合わせてエンティティクラスと初期データ用のdata.sqlの作成をしました。
(第3回) DBのテーブル設計、エンティティクラスと初期データの作成【Spring Boot2で日記ウェブアプリ】
前回でエンティティクラスDiaryからdiaryテーブルが生成されたので、今回はdairyテーブルのCRUD操作をするリポジトリインタフェースの作成をやっていきます。
◾️動作環境やバージョンは以下の通りです。
OS:macOS Big Sur(バージョン11.7.1)
開発環境:Eclipse(Pleiades All in One、4.16(2020-06)、Java Full Edition版)
Spring Bootバージョン:2.7.5
->2.4でも確認済み
Java:11
データベース:H2
今回作成するファイルを先に書いておきます。
新規に作成するファイルは「DiaryRepository.java」の1つです。
DBのテーブル操作で基本となるのがCRUD(クラッド)機能です。CRUDとは、C(Create、データ生成)、R(Read、データ取得)、U(Update、データ更新)、D(Delete、データ削除)です。
前回に作成したDiaryエンティティクラスをCRUD操作するために、Spring Data JPAのCrudRepositoryを継承してリポジトリインタフェースDiaryRepository.javaを作成していきます。
それでは、com.example.demoパッケージ内にJavaのインタフェースDiaryRepository.javaを作成して編集します。
package com.example.demo;
import org.springframework.data.repository.CrudRepository;
//CrudRepositoryをJpaRepositoryに変更しても使える
public interface DiaryRepository extends CrudRepository<Diary, Integer> {
}
DiaryRepository.javaは、ただ単にCrudRepositoryを継承しただけのインタフェースです。
ただのインタフェースなので「実装クラスは?」と思われるかもしれませんが、Spring Data JPAではこのインタフェースを実装したクラスを自動で作ってくれるため、プログラマはこのDiaryRepository.javaを使ってDiaryテーブルの簡単なCRUD操作ができるようになります。
また、CrudRepositoryの代わりにJpaRepositoryを使用しても問題ありません。JpaRepositoryはCrudRepositoryを継承しています。
CrudRepositoryを継承しただけのDiaryRepositoryインタフェースを使用してできるCRUD操作には限界があります。
例えば、条件でテーブルのフィールドを指定してデータ取得をしたい場合はDiaryRepositoryインタフェースにメソッドを追加する必要がありますし、@Queryアノテーションで実行したいSQLを直接指定する事もできます。
Spring Data JPA(CrudRepository,JpaRepository等)やリポジトリインターフェースの詳細な使い方については別ページで説明しているので、Spring Bootでもう少し複雑なDB操作のプログラミングをしたい人は参考にしてください。
Spring Bootでリポジトリインタフェースのプログラミング
以上今回は、dairyテーブルをCRUD操作するための機能を提供するために、リポジトリインタフェースを作成しました。
今後はこのリポジトリインタフェースを利用して、diaryテーブルのCRUD操作をしていきます。
次回は、コントローラクラスDiaryControllerを作成し、日記の一覧データを取得する処理を作ります。CRUDでいうと、R(Read、読み込み・データ取得)の部分になります。
(第5回) コントローラクラスの作成、日記一覧データを取得【Spring Boot2で日記ウェブアプリ】
Spring Bootの日記投稿ウェブアプリ開発入門トップ