Memfilter dan Mengurutkan Data

Melakukan Query ke Basis Data PostgreSQL di Java

Miller Trujillo

Staff Software Engineer

Mengapa memfilter dan mengurutkan?

  • Sebagian besar aplikasi tidak menampilkan semua catatan
  • Perlu mempersempit hasil
  • Mengatur data secara bermakna
  • Menampilkan bagian yang dapat dikelola

$$

$$

$$

$$

  • WHERE, ORDER BY, LIMIT, OFFSET

Sebuah toko buku online

Melakukan Query ke Basis Data PostgreSQL di Java

Memfilter dengan WHERE

String sql = "SELECT * FROM books WHERE publication_year > ?";
PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, 2000); ResultSet rs = pstmt.executeQuery();
  • Gunakan placeholder ? dan ikat dengan setInt()
  • Kode Java tetap sama, hanya SQL yang berubah
Melakukan Query ke Basis Data PostgreSQL di Java

Bisakah kita memfilter di Java?

  • Memfilter di tingkat basis data:
    • Mengurangi data yang ditransfer ✅
    • Mencegah kemacetan jaringan ✅
    • Memberikan kinerja lebih baik ✅
  • Pengecualian: logika kompleks (API eksternal, model AI) 💡

Analogi memesan makanan

Melakukan Query ke Basis Data PostgreSQL di Java

Mengurutkan dengan ORDER BY

String sql = "SELECT title, publication_year FROM books
WHERE category_id = ? ORDER BY publication_year DESC";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 3);
ResultSet rs = pstmt.executeQuery();
// Menambahkan perilaku dinamis
boolean desc = true;
String sql = "SELECT title, publication_year FROM books
WHERE category_id = ? ORDER BY publication_year ";

sql += desc ? "DESC" : "ASC";
  • += menambahkan teks ke string SQL
  • ?: - operator ternary (if-else ringkas)
Melakukan Query ke Basis Data PostgreSQL di Java

Paginasi dengan LIMIT dan OFFSET

  • LIMIT mengontrol jumlah baris yang dikembalikan
  • OFFSET melewati baris sebelum mengembalikan hasil
  • ORDER BY memastikan hasil konsisten di setiap halaman
String sql = "SELECT title FROM books ORDER BY title ASC LIMIT ? OFFSET ?";
PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, 10); // LIMIT: 10 buku per halaman pstmt.setInt(2, 20); // OFFSET: lewati 20 baris pertama ResultSet rs = pstmt.executeQuery();
Melakukan Query ke Basis Data PostgreSQL di Java

Ayo berlatih!

Melakukan Query ke Basis Data PostgreSQL di Java

Preparing Video For Download...