Spring ORM (Object Relational Mapping) হল Spring Framework এর একটি মডিউল, যা Hibernate এর মতো ORM টুলের সাথে ইন্টিগ্রেট করে ডেটাবেজ অপারেশন সহজতর করে। Spring ORM ডেটাবেজ অপারেশনের জন্য Spring এর Transaction Management এবং Dependency Injection সুবিধা প্রদান করে।
CRUD অপারেশন বলতে বোঝানো হয় ডেটাবেজের চারটি মৌলিক কার্যক্রম:
- Create: নতুন ডেটা সংযোজন
- Read: বিদ্যমান ডেটা পড়া
- Update: বিদ্যমান ডেটা পরিবর্তন
- Delete: ডেটা মুছে ফেলা
Spring ORM এই CRUD অপারেশনগুলো Hibernate বা JPA এর সাহায্যে খুবই সহজে বাস্তবায়ন করতে পারে।
CRUD অপারেশন: বিস্তারিত
Create (ডেটা সংযোজন)
Create অপারেশন ব্যবহার করে নতুন ডেটা ডেটাবেজে ইনসার্ট করা হয়। Hibernate এর save() বা JPA এর persist() মেথড ব্যবহার করে এটি সম্পন্ন করা হয়।
@Transactional
public void createEmployee(Employee employee) {
sessionFactory.getCurrentSession().save(employee);
}
Read (ডেটা পড়া)
Read অপারেশন ব্যবহার করে ডেটাবেজ থেকে ডেটা রিট্রিভ করা হয়। Hibernate এ get() বা load() এবং JPA তে find() মেথড ব্যবহার করা হয়।
@Transactional
public Employee getEmployeeById(int id) {
return sessionFactory.getCurrentSession().get(Employee.class, id);
}
Update (ডেটা পরিবর্তন)
Update অপারেশন বিদ্যমান ডেটার পরিবর্তন করার জন্য ব্যবহৃত হয়। Hibernate এ update() বা JPA তে merge() মেথড ব্যবহার করা হয়।
@Transactional
public void updateEmployee(Employee employee) {
sessionFactory.getCurrentSession().update(employee);
}
Delete (ডেটা মুছে ফেলা)
Delete অপারেশন ব্যবহার করে ডেটাবেজ থেকে ডেটা মুছে ফেলা হয়। Hibernate এ delete() এবং JPA তে remove() মেথড ব্যবহার করা হয়।
@Transactional
public void deleteEmployee(int id) {
Employee employee = sessionFactory.getCurrentSession().get(Employee.class, id);
if (employee != null) {
sessionFactory.getCurrentSession().delete(employee);
}
}
Spring ORM এবং Transaction Management
Spring ORM এ CRUD অপারেশনগুলো @Transactional অ্যানোটেশন ব্যবহার করে টানজেকশন নিরাপত্তার সাথে সম্পন্ন করা যায়। এর ফলে ট্রানজেকশন ব্যর্থ হলে ডেটাবেজের ডেটা রোলব্যাক হয়, যা ডেটার অখণ্ডতা বজায় রাখে।
উদাহরণ:
@Service
public class EmployeeService {
@Autowired
private SessionFactory sessionFactory;
@Transactional
public void saveEmployee(Employee employee) {
sessionFactory.getCurrentSession().save(employee);
}
@Transactional
public Employee findEmployeeById(int id) {
return sessionFactory.getCurrentSession().get(Employee.class, id);
}
@Transactional
public void updateEmployee(Employee employee) {
sessionFactory.getCurrentSession().update(employee);
}
@Transactional
public void deleteEmployee(int id) {
Employee employee = sessionFactory.getCurrentSession().get(Employee.class, id);
if (employee != null) {
sessionFactory.getCurrentSession().delete(employee);
}
}
}
Spring ORM এবং Hibernate এর মাধ্যমে CRUD অপারেশন সহজতর, কার্যকর এবং ডেটাবেজ-স্বাধীনভাবে পরিচালনা করা যায়।
Read more