今回の記事はSpringBootのrepositoryとは?という疑問に答える記事です。SpringBootはWeb開発をJavaで行う場合、非常に便利なフレームワークです。開発を行う際のディレクトリ構成やレイヤーの役割を押さえておくと開発効率的にもよいので、SpringBoot勉強中の方は是非参考にしてみてください。
また、SprtingBootの各ディレクトリ構成に関する記事や各ディレクトリの役割も別記事にまとめいているので是非参考にしてみてください。
- 【SpringBoot】ディレクトリ構成と各ディレクトリの役割ご紹介。
- 【SpringBoot】controllerとは?
- 【SpringBoot】formとは?
- 【SpringBoot】dtoとは?
- 【SpringBoot】serviceとは?
- 【SpringBoot】repositoryとは? ←今回の記事
- 【SpringBoot】mapperとは?
- 【SpringBoot】entityとは?
SpringBootにおけるrepositoryとは?
repositoryとは文字で説明すると「Serviceに対して、データのライフサイクルを制御するための操作を提供する。」と説明している記事が多いです。
しかし、SpringBoot初心者にとってこの説明ではよくわからないと思います。ライフサイクル?
簡単に言い換えると、「Serviceから呼ばれて、DB操作をするmapperクラスを呼んで操作する。」です。
repositoryクラスを知る前に、repositoryクラスの前後の処理フローを理解しておく必要があります。

- serviceから呼ばる
- dtoを受け取り内部でentityに変換
- entityを渡し、mapperクラスを呼ぶ
- mapperによりSQL実行(mapperの処理)
- DBから取得したデータをentityとして、mapperが受け取る(mapperの処理)
- データをentityとしてmapperから受け取る
- serviceにentityとしてデータを返す
このような流れで、repositoryは動いています。
SpringBootにおけるrepositoryの実装
実際にコードでrepositoryを表現すると下記のようになります。
package com.example.demo.repository;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.example.demo.dto.SampleDto;
import com.example.demo.entity.User1;
import com.example.demo.mapper.User1Mapper;
@Repository
public class SampleRepository {
private User1Mapper mapper;
public SampleRepository(User1Mapper mapper) {
this.mapper = mapper;
}
// データ取得
public List<User1> selectAll(){
// 全データ取得
List<User1> data = mapper.selectByExample(null);
// entityからdtoに置き換え
List<SampleDto> result = new ArrayList<SampleDto>();
for(User1 param : data)
{
SampleDto dto = new SampleDto();
dto.setId(param.getId);
dto.setName(param.getName);
dto.setAge(param.getAge);
result.add(dto)
}
return result;
}
// インサート
public Integer insertUser(SampleDto dto){
// dtoからentityに置き換え
User1 user1 = new User1();
user1.setName(dto.getName());
user1.setAge(dto.getAge());
Integer result = mapper.insert(user1);
return result;
}
}
mapperにコンストラクタインジェクションを行い、使用します。mapperのselectやinsertでデータ操作を行います。
さらにプロジェクト内でどのようにデータが流れていくかを知りたい方は上記でも紹介しましたが下記記事で各レポジトリの役割とサンプル的なアプリコードがありますので、そちらでrepositoryの処理を確認してみてください。
「【SpringBoot】ディレクトリ構成と各ディレクトリの役割ご紹介。」
では、今回の記事は以上です。ほかにもSpringBoot関連の記事を記載しているので、是非参考にしてみてください。
コメント