- Spring Boot & H2 - Discussion
- Spring Boot & H2 - Useful Resources
- Spring Boot & H2 - Quick Guide
- Spring Boot & H2 - Unit Test Repository
- Spring Boot & H2 - Unit Test Service
- Spring Boot & H2 - Unit Test Controller
- Spring Boot & H2 - Delete Record
- Spring Boot & H2 - Update Record
- Spring Boot & H2 - Get All Records
- Spring Boot & H2 - Get Record
- Spring Boot & H2 - Add Record
- Spring Boot & H2 - H2 Console
- Spring Boot & H2 - REST APIs
- Spring Boot & H2 - Project Setup
- Spring Boot & H2 - Environment Setup
- Spring Boot & H2 - Overview
- Spring Boot & H2 - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Spring Boot & H2 - Project Setup
As in previous chapter
, we ve imported the generated spring boot project in ecppse. Now let s create the following structure in src/main/java folder.com.tutorialspoint.controller.EmployeeController − A REST Based Controller to implement REST based APIs.
com.tutorialspoint.entity.Employee − An entity class representing the corresponding table in database.
com.tutorialspoint.repository.EmployeeRepository − A Repository Interface to implement the CRUD operations on the database.
com.tutorialspoint.service.EmployeeService − A Service Class to implement the business opearations over repository functions.
com.tutorialspoint.springbooth2.SprintBootH2Apppcation − A Spring Boot Apppcation class.
SprintBootH2Apppcation class is already present. We need to create the above packages and relevant classes and interface as shown below −
Entity - Entity.java
Following is the default code of Employee. It represents a Employee table with id, name, age and email columns.
package com.tutorialspoint.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table pubpc class Employee { @Id @Column private int id; @Column private String name; @Column private int age; @Column private String email; pubpc int getId() { return id; } pubpc void setId(int id) { this.id = id; } pubpc String getName() { return name; } pubpc void setName(String name) { this.name = name; } pubpc int getAge() { return age; } pubpc void setAge(int age) { this.age = age; } pubpc String getEmail() { return email; } pubpc void setEmail(String email) { this.email = email; } }
Repository - EmployeeRepository.java
Following is the default code of Repository to implement CRUD operations on above entity, Employee.
package com.tutorialspoint.repository; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; import com.tutorialspoint.entity.Employee; @Repository pubpc interface EmployeeRepository extends CrudRepository<Employee, Integer> { }
Service - EmployeeService.java
Following is the default code of Service to implement operations over repository functions.
package com.tutorialspoint.service; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.tutorialspoint.entity.Employee; import com.tutorialspoint.repository.EmployeeRepository; @Service pubpc class EmployeeService { @Autowired EmployeeRepository repository; pubpc Employee getEmployeeById(int id) { return null; } pubpc List<Employee> getAllEmployees(){ return null; } pubpc void saveOrUpdate(Employee employee) { } pubpc void deleteEmployeeById(int id) { } }
Controller - EmployeeController.java
Following is the default code of Controller to implement REST APIs.
package com.tutorialspoint.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.tutorialspoint.entity.Employee; import com.tutorialspoint.service.EmployeeService; @RestController @RequestMapping(path = "/emp") pubpc class EmployeeController { @Autowired EmployeeService employeeService; @GetMapping("/employees") pubpc List<Employee> getAllEmployees(){ return null; } @GetMapping("/employee/{id}") pubpc Employee getEmployee(@PathVariable("id") int id) { return null;; } @DeleteMapping("/employee/{id}") pubpc void deleteEmployee(@PathVariable("id") int id) { } @PostMapping("/employee") pubpc void addEmployee(@RequestBody Employee employee) { } @PutMapping("/employee") pubpc void updateEmployee(@RequestBody Employee employee) { } }
Apppcation - SprintBootH2Apppcation.java
Following is the updated code of Apppcation to use above classes.
package com.tutorialspoint.sprintbooth2; import org.springframework.boot.SpringApppcation; import org.springframework.boot.autoconfigure.SpringBootApppcation; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.ComponentScan; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; @ComponentScan({"com.tutorialspoint.controller","com.tutorialspoint.service"}) @EntityScan("com.tutorialspoint.entity") @EnableJpaRepositories("com.tutorialspoint.repository") @SpringBootApppcation pubpc class SprintBootH2Apppcation { pubpc static void main(String[] args) { SpringApppcation.run(SprintBootH2Apppcation.class, args); } }
Run/Debug Configuration
Create following maven configuration in ecppse to run the springboot apppcation with goal spring-boot:run. This configuration will help to run the REST APIs and we can test them using POSTMAN.
Advertisements