Pagination (Sayfalama)

pagination-sayfalama (büyük resim için tıklayın)

Pagination, bir veri kümesini küçük parçalara (sayfalara) ayırma işlemidir. Bu işlem, özellikle büyük veri setlerinde, kullanıcıların verilere daha hızlı ve düzenli bir şekilde erişmesini sağlamak için kullanılır. Örneğin, bir web sitesinde bir tabloda 1000 kayıt varsa, her sayfada 10 kayıt göstermek için pagination uygulanır.

Pagination Kullanımının Amacı

  1. Performans Artışı: Veritabanından büyük miktarda veri çekmek yerine, yalnızca gerekli olan veri miktarını çekmek.
  2. Kullanıcı Deneyimi: Kullanıcıların verilere daha düzenli ve erişilebilir bir şekilde ulaşmasını sağlamak.
  3. Yük Azaltma: Sunucu ve istemci arasındaki veri yükünü azaltmak.

MySQL Üzerinde Pagination Örneği

MySQL'de LIMIT ve OFFSET kullanılarak pagination işlemi yapılabilir.

Temel Sorgu Formatı:

SELECT * FROM tablo_adi

LIMIT başlangıç_kaydı, kayıt_sayısı;

  • başlangıç_kaydı: Çekmeye başlayacağınız ilk kaydın sırası.
  • kayıt_sayısı: Çekmek istediğiniz kayıt sayısı.

Örnek Senaryo:

Bir products tablosunda ürünler listeleniyor. Her sayfada 10 kayıt gösterilmek isteniyor.

Sayfa 1 (İlk 10 Kayıt): SELECT * FROM products LIMIT 0, 10;

Sayfa 2 (11-20 Arası Kayıtlar): SELECT * FROM products LIMIT 10, 10;

Sayfa 3 (21-30 Arası Kayıtlar): SELECT * FROM products LIMIT 20, 10;

Java Üzerinde Pagination Örneği

Java’da pagination genellikle bir veritabanı ile birlikte çalışırken kullanılır. Aşağıda bir MySQL sorgusuyla birleştirilmiş bir Java örneği verilmiştir.

Örnek Senaryo:

products tablosundan her sayfada 10 kayıt gösteren bir sistem.

Kod Örneği:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

 

public class PaginationExample {

 

   public static void main(String[] args) {

       String jdbcURL = "jdbc:mysql://localhost:3306/your_database";

       String username = "your_username";

       String password = "your_password";

 

       int page = 2; // Örnek: 2. sayfa

       int recordsPerPage = 10;

 

       int offset = (page - 1) * recordsPerPage;

 

       String query = "SELECT * FROM products LIMIT ?, ?";

 

       try (Connection connection = DriverManager.getConnection(jdbcURL, username, password);

            PreparedStatement preparedStatement = connection.prepareStatement(query)) {

 

           preparedStatement.setInt(1, offset);

           preparedStatement.setInt(2, recordsPerPage);

 

           ResultSet resultSet = preparedStatement.executeQuery();

 

           while (resultSet.next()) {

               System.out.println("Product ID: " + resultSet.getInt("id"));

               System.out.println("Product Name: " + resultSet.getString("name"));

               System.out.println("Price: " + resultSet.getDouble("price"));

               System.out.println("---------------------------");

           }

 

       } catch (Exception e) {

           e.printStackTrace();

       }

   }

}

Sonuç

MySQL ve Java ile Pagination:

  • MySQL'de LIMIT ve OFFSET kullanılarak kolayca uygulanabilir.
  • Java'da bu sorgular, JDBC ile birleştirilerek dinamik bir pagination sistemi oluşturulabilir.

Pagination, performans ve kullanıcı deneyimi açısından büyük veri kümelerinin yönetiminde kritik bir rol oynar. Bu örnekler, hem veritabanı hem de uygulama düzeyinde nasıl uygulanabileceğini göstermektedir.

*Gönderi ve görsel chatgpt ile oluşturulmuştur.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)