Hibernate এবং JPA ব্যবহার করে CRUD অপারেশন পরিচালনা

Spring ORM এ CRUD অপারেশন - স্প্রিং ওআরএম (Spring ORM) - Java Technologies

272

স্প্রিং ওআরএম (Spring ORM) হলো স্প্রিং ফ্রেমওয়ার্কের একটি মডিউল যা Object Relational Mapping (ORM) প্রযুক্তি যেমন Hibernate এবং Java Persistence API (JPA) ব্যবহার করে ডেটাবেস অপারেশনগুলো সহজ করে। CRUD অপারেশনগুলো (Create, Read, Update, Delete) পরিচালনার জন্য স্প্রিং ORM এবং JPA একটি শক্তিশালী সমাধান প্রদান করে।


JPA এবং Hibernate পরিচিতি

JPA (Java Persistence API)

JPA হলো একটি স্পেসিফিকেশন, যা ডেটাবেজের সাথে কাজ করার জন্য কিছু স্ট্যান্ডার্ড নির্দেশনা দেয়। এটি ইমপ্লিমেন্ট করার জন্য Hibernate একটি জনপ্রিয় ফ্রেমওয়ার্ক।

Hibernate

Hibernate হলো JPA-এর একটি ইমপ্লিমেন্টেশন। এটি জাভা অবজেক্ট এবং ডেটাবেসের মধ্যে ম্যাপিং সহজ করার জন্য ব্যবহৃত হয়।


স্প্রিং ORM দিয়ে JPA/Hibernate ইন্টিগ্রেশন

ডিপেন্ডেন্সি সংযোজন

Maven ব্যবহার করলে নিচের ডিপেন্ডেন্সিগুলো pom.xml ফাইলে যুক্ত করতে হবে:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>

স্প্রিং ORM কনফিগারেশন

Application.properties ফাইল

application.properties ফাইলে ডাটাবেস কনফিগারেশন যুক্ত করুন:

spring.datasource.url=jdbc:mysql://localhost:3306/your_database
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

CRUD অপারেশন ইমপ্লিমেন্টেশন

Entity ক্লাস তৈরি

JPA ব্যবহার করে ডেটাবেস টেবিলের জন্য একটি Entity ক্লাস তৈরি করুন। উদাহরণস্বরূপ:

@Entity
@Table(name = "employees")
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name", nullable = false)
    private String name;

    @Column(name = "department")
    private String department;

    @Column(name = "salary")
    private double salary;

    // Getters and Setters
}

Repository ইন্টারফেস তৈরি

Spring Data JPA-এর সাহায্যে JpaRepository ইন্টারফেস ব্যবহার করে ডেটাবেজ অপারেশনগুলো সহজ করা যায়:

@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
}

সার্ভিস স্তর তৈরি

ব্যবসায়িক লজিক পরিচালনার জন্য সার্ভিস ক্লাস তৈরি করুন:

@Service
public class EmployeeService {
    @Autowired
    private EmployeeRepository employeeRepository;

    public Employee saveEmployee(Employee employee) {
        return employeeRepository.save(employee);
    }

    public Employee getEmployeeById(Long id) {
        return employeeRepository.findById(id).orElse(null);
    }

    public List<Employee> getAllEmployees() {
        return employeeRepository.findAll();
    }

    public Employee updateEmployee(Long id, Employee employeeDetails) {
        Employee existingEmployee = employeeRepository.findById(id).orElse(null);
        if (existingEmployee != null) {
            existingEmployee.setName(employeeDetails.getName());
            existingEmployee.setDepartment(employeeDetails.getDepartment());
            existingEmployee.setSalary(employeeDetails.getSalary());
            return employeeRepository.save(existingEmployee);
        }
        return null;
    }

    public void deleteEmployee(Long id) {
        employeeRepository.deleteById(id);
    }
}

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

REST API তৈরি করতে কন্ট্রোলার ক্লাস ব্যবহার করুন:

@RestController
@RequestMapping("/api/employees")
public class EmployeeController {
    @Autowired
    private EmployeeService employeeService;

    @PostMapping
    public Employee createEmployee(@RequestBody Employee employee) {
        return employeeService.saveEmployee(employee);
    }

    @GetMapping("/{id}")
    public Employee getEmployeeById(@PathVariable Long id) {
        return employeeService.getEmployeeById(id);
    }

    @GetMapping
    public List<Employee> getAllEmployees() {
        return employeeService.getAllEmployees();
    }

    @PutMapping("/{id}")
    public Employee updateEmployee(@PathVariable Long id, @RequestBody Employee employee) {
        return employeeService.updateEmployee(id, employee);
    }

    @DeleteMapping("/{id}")
    public void deleteEmployee(@PathVariable Long id) {
        employeeService.deleteEmployee(id);
    }
}

সারাংশ

স্প্রিং ORM ব্যবহার করে JPA এবং Hibernate এর মাধ্যমে CRUD অপারেশন ইমপ্লিমেন্ট করা খুবই সহজ এবং কার্যকর। JPA-এর স্ট্যান্ডার্ড স্পেসিফিকেশন এবং Hibernate-এর শক্তিশালী ORM ফিচার একত্রে ব্যবহার করে ডেটাবেস অপারেশন পরিচালনা করা যায়, যা অ্যাপ্লিকেশনকে আরও স্কেলেবল এবং মেইনটেইনেবল করে।

Content added By
Promotion

Are you sure to start over?

Loading...