Building CRUD APIs with Spring Boot and JPA

 Creating CRUD (Create, Read, Update, Delete) APIs is a fundamental task in any backend development project. With Spring Boot and Spring Data JPA, building these APIs becomes fast, efficient, and maintainable. Let’s explore how you can build a CRUD REST API using Spring Boot and JPA in just a few simple steps.

Step 1: Project Setup

Start by creating a new Spring Boot project using Spring Initializr with the following dependencies:

Spring Web

Spring Data JPA

H2 Database (for demo/testing)

You’ll get a basic project structure with all the necessary configurations.

Step 2: Define the Entity

Create a simple entity class that maps to a database table.

@Entity

public class Employee {

    @Id

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    private Long id;

    private String name;

    private String role;

    // Getters and Setters

}

Step 3: Create the Repository

Extend JpaRepository to handle database operations automatically.

public interface EmployeeRepository extends JpaRepository<Employee, Long> {

}

Spring Data JPA will generate all basic CRUD methods for you—no implementation required.

Step 4: Build the REST Controller

Now, expose the CRUD operations via RESTful endpoints.

@RestController

@RequestMapping("/employees")

public class EmployeeController {

    @Autowired

    private EmployeeRepository repository;

    @PostMapping

    public Employee create(@RequestBody Employee emp) {

        return repository.save(emp);

    }

    @GetMapping

    public List<Employee> getAll() {

        return repository.findAll();

    }

    @GetMapping("/{id}")

    public ResponseEntity<Employee> getById(@PathVariable Long id) {

        return repository.findById(id)

            .map(ResponseEntity::ok)

            .orElse(ResponseEntity.notFound().build());

    }

    @PutMapping("/{id}")

    public Employee update(@PathVariable Long id, @RequestBody Employee emp) {

        emp.setId(id);

        return repository.save(emp);

    }

    @DeleteMapping("/{id}")

    public void delete(@PathVariable Long id) {

        repository.deleteById(id);

    }

}

Step 5: Test the API

You can now test the endpoints using tools like Postman or cURL. The in-memory H2 database makes it easy to verify changes instantly.

Final Thoughts

Spring Boot and JPA offer a powerful combo for building REST APIs with minimal effort. With auto-configuration, annotation-driven development, and built-in CRUD functionality, you can develop robust backend services quickly. This setup is perfect for microservices, web apps, and enterprise-level systems alike.

Learn  Full Stack Java Training

Introduction to Spring Boot for Java Developers

Creating Your First REST API with Spring Boot

Dependency Injection and Inversion of Control

Spring Boot Auto-Configuration Explained

Visit Our Quality Thought Training Institute



Comments

Popular posts from this blog

Understanding the useEffect Hook

What Is Tosca? A Beginner’s Guide

Exception Handling in Java