In this tutorial, we’re gonna build a Spring Boot Rest CRUD API example with Maven that use Spring Data JPA to interact with H2 database. You’ll know:
For more details, please visit:
https://bezkoder.com/spring-boot-jpa-h2-example/
We will build a Spring Boot Rest Apis using Spring Data JPA with H2 Database for a Tutorial application in that:
These are APIs that we need to provide:
/api/tutorials
: create new Tutorial/api/tutorials
: retrieve all Tutorials/api/tutorials/[id]
: retrieve a Tutorial by :id/api/tutorials/[id]
: update a Tutorial by :id/api/tutorials/[id]
: delete a Tutorial by :id/api/tutorials
: delete all Tutorials/api/tutorials/published
: find all published Tutorials/api/tutorials?title=[keyword]
: find all Tutorials which title contains keyword– We make CRUD operations & finder methods with Spring Data JPA’s JpaRepository.
– The database will be H2 Database (in memory or on disk) by configuring project dependency & datasource.
Let me explain it briefly.
– Tutorial
data model class corresponds to entity and table tutorials.
– TutorialRepository
is an interface that extends JpaRepository
for CRUD methods and custom finder methods. It will be autowired in TutorialController
.
– TutorialController
is a RestController which has request mapping methods for RESTful requests such as: getAllTutorials, createTutorial, updateTutorial, deleteTutorial, findByPublished…
– Configuration for Spring Datasource, JPA & Hibernate in application.properties.
– pom.xml contains dependencies for Spring Boot and H2 Database.
For more details, implementation and Github, please visit:
https://bezkoder.com/spring-boot-jpa-h2-example/
Using other databases:
– Spring JPA + PostgreSQL
– Spring JPA + MySQL
– Spring Data + MongoDB
If you want to add Pagination to this Spring project, you can find the instruction at:
Spring Boot Pagination & Filter example | Spring JPA, Pageable
To sort/order by multiple fields:
Spring Data JPA Sort/Order by multiple Columns | Spring Boot
Handle Exception for this Rest APIs is necessary:
– Spring Boot @ControllerAdvice & @ExceptionHandler example
– @RestControllerAdvice example in Spring Boot
Or way to write Unit Test for the JPA Repository:
Spring Boot Unit Test for JPA Repositiory with @DataJpaTest
#java #spring #spring-boot #h2 #spring-framework #jpa