Java Technologies Hibernate এর মাধ্যমে Data Read (Retrieve) গাইড ও নোট

299

Hibernate ORM (Object-Relational Mapping) ফ্রেমওয়ার্কের মাধ্যমে ডাটাবেস থেকে ডেটা রিট্রিভ (Retrieve) বা পড়ার প্রক্রিয়া খুবই সহজ এবং কার্যকরী। Hibernate ডেটাবেসের সাথে সম্পর্কিত অবজেক্টগুলির মধ্যে ম্যাপিং করে, এবং আপনি বিভিন্ন CRUD (Create, Read, Update, Delete) অপারেশন করতে পারবেন, যেখানে Read অপারেশনটি ডেটা রিট্রিভ করার জন্য ব্যবহৃত হয়।

Hibernate-এ ডেটা রিট্রিভ করার জন্য সাধারণত Session অবজেক্ট ব্যবহার করা হয়, যা ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করে এবং অবজেক্টগুলিকে রিটার্ন করে। এখানে বিভিন্ন পদ্ধতিতে ডেটা রিট্রিভ করার বিস্তারিত আলোচনা করা হলো।


1. Using Session.get() Method

Session.get() মেথড ব্যবহার করে নির্দিষ্ট ID-এর মাধ্যমে একটি অবজেক্ট রিট্রিভ করা যায়। এটি primary key দ্বারা রেকর্ড রিট্রিভ করে।

Example: Retrieving Data using Session.get()

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class RetrieveExample {
    public static void main(String[] args) {

        // Step 1: Create session factory and session
        SessionFactory factory = new Configuration().configure("hibernate.cfg.xml")
                .addAnnotatedClass(Employee.class)
                .buildSessionFactory();

        Session session = factory.getCurrentSession();

        try {
            // Step 2: Create a new Employee object
            int employeeId = 1;

            // Step 3: Retrieve the Employee based on the ID
            session.beginTransaction();

            Employee employee = session.get(Employee.class, employeeId);

            // Step 4: Display the retrieved employee
            System.out.println("Retrieved Employee: " + employee);

            session.getTransaction().commit();
        } finally {
            factory.close();
        }
    }
}

Explanation:

  • session.get(Employee.class, employeeId): এখানে get() মেথডটি Employee অবজেক্ট রিটার্ন করে, যেখানে employeeId হল primary key। এটি রিট্রিভ করার জন্য ডাটাবেসের টেবিল থেকে সঠিক সারি খুঁজে বের করে।

2. Using Session.createQuery() with HQL (Hibernate Query Language)

Hibernate Query Language (HQL) ব্যবহার করে আরও জটিল কুয়েরি তৈরি করা সম্ভব। HQL SQL-এর মতোই দেখতে, কিন্তু এটি জাভা অবজেক্টগুলির জন্য ডিজাইন করা। createQuery() মেথডের মাধ্যমে আপনি HQL কুয়েরি চালাতে পারেন।

Example: Retrieving Data using HQL

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;

import java.util.List;

public class RetrieveExample {
    public static void main(String[] args) {

        // Step 1: Create session factory and session
        SessionFactory factory = new Configuration().configure("hibernate.cfg.xml")
                .addAnnotatedClass(Employee.class)
                .buildSessionFactory();

        Session session = factory.getCurrentSession();

        try {
            // Step 2: Create a HQL query to retrieve all employees
            session.beginTransaction();

            Query<Employee> query = session.createQuery("from Employee", Employee.class);

            // Step 3: Execute the query and get result list
            List<Employee> employees = query.getResultList();

            // Step 4: Display the results
            for (Employee emp : employees) {
                System.out.println(emp);
            }

            session.getTransaction().commit();
        } finally {
            factory.close();
        }
    }
}

Explanation:

  • session.createQuery("from Employee", Employee.class): এখানে createQuery() মেথডটি HQL কুয়েরি তৈরি করে যা Employee টেবিলের সমস্ত রেকর্ড রিট্রিভ করবে।
  • query.getResultList(): এটি HQL কুয়েরি চালিয়ে সমস্ত Employee অবজেক্টের লিস্ট রিটার্ন করে।

3. Using Session.createCriteria() (Deprecated in Latest Versions)

Hibernate এর পুরানো ভার্সনে Criteria API ব্যবহার করা হত ডেটা রিট্রিভ করার জন্য। তবে, বর্তমানে Hibernate 5 এবং পরবর্তী ভার্সনগুলিতে Criteria API পুরানো হিসেবে চিহ্নিত হয়েছে এবং এর পরিবর্তে JPA Criteria API ব্যবহৃত হচ্ছে।

Example: Retrieving Data using Criteria (Hibernate 4.x or older)

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.CriteriaQuery;

import java.util.List;

public class RetrieveExample {
    public static void main(String[] args) {

        // Step 1: Create session factory and session
        SessionFactory factory = new Configuration().configure("hibernate.cfg.xml")
                .addAnnotatedClass(Employee.class)
                .buildSessionFactory();

        Session session = factory.getCurrentSession();

        try {
            // Step 2: Create a Criteria query to retrieve employees
            session.beginTransaction();

            List<Employee> employees = session.createCriteria(Employee.class).list();

            // Step 3: Display the results
            for (Employee emp : employees) {
                System.out.println(emp);
            }

            session.getTransaction().commit();
        } finally {
            factory.close();
        }
    }
}

Explanation:

  • session.createCriteria(Employee.class).list(): এটি Criteria API ব্যবহার করে Employee টেবিলের সব রেকর্ড রিট্রিভ করে।

4. Using Session.createNativeQuery() (SQL Queries)

Hibernate এ native SQL queries ব্যবহার করার মাধ্যমে সরাসরি SQL কুয়েরি চালানো যেতে পারে। এটি Hibernate এর মাধ্যমে ডাটাবেসের সাথে সরাসরি SQL ইন্টারঅ্যাকশন করার জন্য ব্যবহৃত হয়।

Example: Retrieving Data using Native SQL

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.NativeQuery;

import java.util.List;

public class RetrieveExample {
    public static void main(String[] args) {

        // Step 1: Create session factory and session
        SessionFactory factory = new Configuration().configure("hibernate.cfg.xml")
                .addAnnotatedClass(Employee.class)
                .buildSessionFactory();

        Session session = factory.getCurrentSession();

        try {
            // Step 2: Create a native SQL query to retrieve employees
            session.beginTransaction();

            String sql = "SELECT * FROM employee";
            NativeQuery<Employee> query = session.createNativeQuery(sql, Employee.class);

            // Step 3: Execute the query and get result list
            List<Employee> employees = query.getResultList();

            // Step 4: Display the results
            for (Employee emp : employees) {
                System.out.println(emp);
            }

            session.getTransaction().commit();
        } finally {
            factory.close();
        }
    }
}

Explanation:

  • session.createNativeQuery(sql, Employee.class): এটি native SQL কুয়েরি ব্যবহার করে employee টেবিল থেকে সমস্ত ডেটা রিট্রিভ করে এবং Employee ক্লাসে মাপসই করে।

Hibernate এর মাধ্যমে ডেটা রিট্রিভ করার কয়েকটি পদ্ধতি রয়েছে, যেমন:

  1. Session.get() Method: একটি নির্দিষ্ট primary key দ্বারা অবজেক্ট রিটার্ন করা হয়।
  2. HQL (Hibernate Query Language): SQL এর মতোই দেখতে, তবে এটি জাভা অবজেক্টগুলির জন্য ডিজাইন করা।
  3. Criteria API: Hibernate 4.x এবং পুরানো ভার্সনে ব্যবহৃত, কিন্তু এখন এটি JPA Criteria API দ্বারা প্রতিস্থাপিত হয়েছে।
  4. Native SQL Queries: Hibernate দিয়ে সরাসরি SQL কুয়েরি চালানো সম্ভব।

এই সব পদ্ধতি Hibernate ব্যবহারকারীদের ডেটাবেস থেকে ডেটা রিট্রিভ করার জন্য শক্তিশালী এবং নমনীয় উপায় প্রদান করে।

Content added By
Promotion

Are you sure to start over?

Loading...