Pagination এবং Sorting এর মৌলিক ধারণা

Spring ORM এবং Pagination এবং Sorting - স্প্রিং ওআরএম (Spring ORM) - Java Technologies

275

ডেটাবেস থেকে বড় পরিমাণে ডেটা রিট্রিভ করার সময় সিস্টেমের কার্যক্ষমতা বজায় রাখতে Pagination এবং Sorting গুরুত্বপূর্ণ ভূমিকা পালন করে। স্প্রিং ORM (Spring Data JPA) এই দুটি ফিচার সহজেই ইমপ্লিমেন্ট করার জন্য বিল্ট-ইন সাপোর্ট প্রদান করে।


Pagination

Pagination একটি প্রক্রিয়া যেখানে ডেটাবেস থেকে ডেটা আংশিকভাবে (পেজ আকারে) রিট্রিভ করা হয়। এটি বড় ডেটাসেট পরিচালনা করার জন্য ব্যবহৃত হয়।

কীভাবে Pagination কাজ করে?

Pagination দুটি মূল উপাদান দ্বারা নির্ধারিত হয়:

  • Page Size: এক পৃষ্ঠায় কতটি রেকর্ড দেখানো হবে।
  • Page Number: নির্দিষ্ট পৃষ্ঠার ডেটা রিট্রিভ করার জন্য পৃষ্ঠার ইনডেক্স।

উদাহরণ: Spring Data JPA এ Pagination

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    public Page<Employee> getPaginatedEmployees(int pageNumber, int pageSize) {
        return employeeRepository.findAll(PageRequest.of(pageNumber, pageSize));
    }
}

ব্যাখ্যা:

  • PageRequest.of(pageNumber, pageSize): এটি নির্ধারণ করে কোন পৃষ্ঠাটি এবং কতগুলো রেকর্ড ফেচ করতে হবে।
  • Page<Employee> ডেটা এবং মেটাডেটা (যেমন মোট পৃষ্ঠা সংখ্যা, রেকর্ড সংখ্যা) প্রদান করে।

Sorting

Sorting একটি প্রক্রিয়া যেখানে ডেটাকে নির্দিষ্ট একটি বা একাধিক ফিল্ডের উপর ভিত্তি করে ক্রমবদ্ধ করা হয়। এটি ডেটাকে ব্যবহারকারী বা অ্যাপ্লিকেশনের জন্য আরও উপযোগী করে তোলে।

কীভাবে Sorting কাজ করে?

Sorting এর দুটি মূল দিক:

  • Ascending Order (ASC): ক্রমবর্ধমান ক্রমে সাজানো।
  • Descending Order (DESC): ক্রমহ্রাসমান ক্রমে সাজানো।

উদাহরণ: Spring Data JPA এ Sorting

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    public List<Employee> getSortedEmployees(String sortBy) {
        return employeeRepository.findAll(Sort.by(sortBy));
    }
}

ব্যাখ্যা:

  • Sort.by(sortBy): নির্ধারণ করে কোন ফিল্ডের উপর ভিত্তি করে ডেটা সাজানো হবে।
  • ডিফল্টভাবে এটি Ascending অর্ডারে সাজায়।

Pagination এবং Sorting একত্রে ব্যবহার

স্প্রিং ORM-এ Pagination এবং Sorting একসাথে সহজেই ব্যবহার করা যায়।

উদাহরণ: Pagination এবং Sorting এর সংযুক্ত ব্যবহার

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    public Page<Employee> getPaginatedAndSortedEmployees(int pageNumber, int pageSize, String sortBy) {
        return employeeRepository.findAll(PageRequest.of(pageNumber, pageSize, Sort.by(sortBy)));
    }
}

ব্যাখ্যা:

  • PageRequest.of(pageNumber, pageSize, Sort.by(sortBy)): এটি পেজ এবং সর্ট উভয়ের জন্য প্যারামিটার সেট করে।

Pagination এবং Sorting এর সুবিধা

  • বড় ডেটাসেট পরিচালনা সহজ: ছোট ছোট অংশে ডেটা রিট্রিভ করা যায়।
  • ডেটা ভিজুয়ালাইজেশন: ব্যবহারকারীর প্রয়োজন অনুসারে ডেটা ক্রমবদ্ধ করা যায়।
  • কার্যক্ষমতা বৃদ্ধি: ডেটাবেস লোড কমায় এবং সার্ভারের রিসোর্স ব্যবহারে দক্ষতা বাড়ায়।
  • ব্যবহারকারী অভিজ্ঞতা উন্নত: ব্যবহারকারীদের প্রয়োজনীয় তথ্য সহজেই প্রদর্শিত হয়।

উদাহরণ: EmployeeRepository ইন্টারফেস

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

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

এই ইন্টারফেসটি JpaRepository এক্সটেন্ড করার মাধ্যমে Pagination এবং Sorting এর জন্য প্রয়োজনীয় সমস্ত মেথড প্রদান করে।


উপসংহার

স্প্রিং ORM-এ Pagination এবং Sorting বড় ডেটাসেটের কার্যকর ব্যবস্থাপনার জন্য অত্যন্ত গুরুত্বপূর্ণ। এগুলোর সাহায্যে বড় ডেটা সহজে পরিচালনা করা যায়, কার্যক্ষমতা বাড়ে এবং ব্যবহারকারীদের জন্য ডেটা উপস্থাপন আরও অর্থবহ হয়।


Content added By
Promotion

Are you sure to start over?

Loading...