JDBC : Eksekusi & Mengambil Hasil Query SQL

posted Sep 1, 2011, 3:25 AM by Editor KursusInternet   [ updated Sep 24, 2011, 8:25 PM ]

Pendahuluan

Untuk mengeksekusi query SQL dan mengambil hasilnya kita gunakan masing-masing class Statement dan Resultset. Setelah objek Resultset terisi maka kita dapat secara iteratif mengambil data baris per baris dengan metode .next() dan hasilnya dengan metode getString(...), getInteger(..), getShort(...), dan metode sejenisnya berdasarkan kembalian tipe data yang kita inginkan.

Berikut adalah contoh potongan program untuk melakukan hal tersebut di atas.

      Statement stmt = koneksi.createStatement();
      ResultSet rs = stmt.executeQuery("SELECT * FROM ms_produk");

      while(rs.next())
      {
        System.out.println(rs.getString("kode_produk"));
      }

Gambar di bawah menunjukkan isi table ms_produk pada database contoh PHI-Minimart yang terdapat pada SQL Server 2008 R2. Bagian berikut adalah contoh kode lengkap bagaimana kita mengambil dan menampilkan hasil dari suatu perintah SQL terhadap table tersebut.


Gambar 1. Isi dari Table ms_produk

Contoh Kode Java

package com.kursus.internet.database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class AmbilResultSet {
  public static void main(String[] args) {
    Connection koneksi = null;
    Statement stmt = null;
    ResultSet rs = null;
    String namaClassDriver = "net.sourceforge.jtds.jdbc.Driver";
    String urlKoneksi = "jdbc:jtds:sqlserver://localhost/phi_minimart";

    Properties connectionProps = new Properties();
    connectionProps.put("user""kursusinternet");
    connectionProps.put("password""kursusinternet");

    try {
      Class.forName(namaClassDriver);
      koneksi = DriverManager.getConnection(urlKoneksi, connectionProps);

      stmt = koneksi.createStatement();
      rs = stmt.executeQuery("SELECT * FROM ms_produk");

      while(rs.next())
      {
        System.out.print(rs.getString("kode_produk"));
        System.out.println(" | " + rs.getString("nama_produk"));
      }
    catch (SQLException e) {
      e.printStackTrace();
    catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
    finally {
      try {
        if(rs != nullrs.close();
        if(stmt != nullstmt.close();
        if(koneksi != nullkoneksi.close();
      catch (SQLException e) {
        e.printStackTrace();
      }      
    }
  }
}

Contoh Hasil Eksekusi

PROD-0000001 | merah bawang 1kg
PROD-0000002 | putih bawang 1 kg
PROD-0000003 | buncis 1 kg
PROD-0000004 | kacang panjang 1 kg
PROD-0000005 | kacang hijau 1 kg
PROD-0000006 | kentang 1 kg
PROD-0000007 | ketimun 1 kg
PROD-0000008 | kobis 1 kg
PROD-0000009 | tomat 1 kg
PROD-0000010 | ubi kayu basah 1 kg
PROD-0000011 | ubi jalar 1 kg
PROD-0000012 | wortel 1 kg
PROD-0000013 | susu kotak (800 ml)
PROD-0000014 | telur ayam ras 1 kg
PROD-0000015 | telur ayam kampung 1 kg
PROD-0000016 | mie instant 1 kotak (40 bungkus)
PROD-0000017 | air mineral 600 ml
PROD-0000018 | jus kesehatan 600 ml
PROD-0000019 | nasi goreng instant (1 ons)
PROD-0000020 | snack gurih 1 ons
PROD-0000021 | kacang goreng 1 kg
PROD-0000022 | kacang mete 1 kg
PROD-0000023 | markisa 600 ml
PROD-0000024 | bumbu fried chicken
PROD-0000025 | susu kotak 1 l
PROD-0000026 | minuman probiotik
PROD-0000027 | jeruk 1 kg
PROD-0000028 | apel 1 kg
PROD-0000029 | alpukat 1 kg
PROD-0000030 | belimbing 1 kg
PROD-0000031 | durian 1 kg
PROD-0000032 | kelapa muda
PROD-0000033 | mangga 1 kg
PROD-0000034 | Manggis 1 kg
PROD-0000035 | nenas 1 kg
PROD-0000036 | nangka 1 kg
PROD-0000037 | pepaya 1 buah
PROD-0000038 | pisang 1 sisir
PROD-0000039 | rambutan 1 kg
PROD-0000040 | salak 1 kg
PROD-0000041 | semangka 1 buah

Comments