Spring Data JPA এর মাধ্যমে Repository তৈরি করা

JPA (Java Persistence API) এবং Spring ORM - স্প্রিং ওআরএম (Spring ORM) - Java Technologies

269

Spring Data JPA হলো স্প্রিং ফ্রেমওয়ার্কের একটি উপাদান যা Java Persistence API (JPA)-এর সঙ্গে কাজ করা সহজ করে তোলে। এটি Repository Design Pattern ব্যবহার করে ডাটাবেজ অপারেশনের জন্য সহজ এবং কার্যকর ইন্টারফেস তৈরি করতে সাহায্য করে। Spring Data JPA ডেটাবেস অপারেশন পরিচালনার জন্য অনেক boilerplate কোড সরিয়ে দেয়।


রেপোজিটরি তৈরি করার ধাপ

স্প্রিং ডেটা JPA ডিপেনডেন্সি যোগ করা

প্রথমে আপনার প্রজেক্টে Spring Data JPA এবং ডাটাবেসের জন্য প্রয়োজনীয় ডিপেনডেন্সি যোগ করুন। Maven প্রজেক্টের জন্য pom.xml ফাইল এডিট করুন:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>com.h2database</groupId> <!-- অথবা আপনার পছন্দের ডাটাবেস -->
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

এন্টারিটি ক্লাস (Entity Class) তৈরি করা

একটি Entity তৈরি করুন যা ডেটাবেসের টেবিলের সঙ্গে ম্যাপ হবে। উদাহরণস্বরূপ, একটি User এন্টারিটি তৈরি করুন:

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

রেপোজিটরি ইন্টারফেস তৈরি করা

Spring Data JPA-র মাধ্যমে JpaRepository ইন্টারফেস এক্সটেন্ড করে একটি রেপোজিটরি তৈরি করুন:

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
    // কাস্টম কুয়েরি মেথড ডিফাইন করা যেতে পারে
    User findByEmail(String email);
}

সার্ভিস বা কন্ট্রোলার ক্লাসে রেপোজিটরি ব্যবহার

রেপোজিটরির মাধ্যমে ডেটাবেস অপারেশন সম্পন্ন করতে সার্ভিস বা কন্ট্রোলার ক্লাসে ব্যবহার করুন:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    public User getUserByEmail(String email) {
        return userRepository.findByEmail(email);
    }

    public User saveUser(User user) {
        return userRepository.save(user);
    }

    public void deleteUser(Long id) {
        userRepository.deleteById(id);
    }
}

কন্ট্রোলার তৈরি করা

HTTP রিকোয়েস্টের মাধ্যমে ডেটাবেস অপারেশন পরিচালনার জন্য একটি কন্ট্রোলার তৈরি করুন:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @GetMapping("/{email}")
    public User getUserByEmail(@PathVariable String email) {
        return userService.getUserByEmail(email);
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.saveUser(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userService.deleteUser(id);
    }
}

উপসংহার

Spring Data JPA এর মাধ্যমে Repository তৈরি করে ডাটাবেস অপারেশন কার্যকরভাবে পরিচালনা করা যায়। এটি ডেটাবেস অ্যাক্সেস লেয়ারকে সহজতর করে এবং ডেভেলপমেন্টে সময় বাঁচায়। JpaRepository ইন্টারফেস ব্যবহার করে সাধারণ ডেটাবেস অপারেশন স্বয়ংক্রিয়ভাবে সম্পন্ন করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...