
Oleh : Reza Ervani
بسم الله الرحمن الرحيم
Pertama-tama kita buatkan form dulu seperti tampak pada gambar di bawah ini :
Selanjutnya kita buat databasenya dengan phpmyadmin seperti tampak dibawah ini :
Kita akan menggunakan DefaultTableModel untuk menampilkan data dari database
Kodenya akan tampak seperti berikut :
[code language=”java”]
DefaultTableModel model = new DefaultTableModel();
table = new JTable(model);
panel.add(table, BorderLayout.CENTER);
panel.add(table.getTableHeader(), BorderLayout.PAGE_START);
[/code]
Tentu saja kita akan letakkan kode tersebut sebelum button yang sudah memiliki ActionHandler. Asumsinya koneksi dan statement query sudah kita buat, sehingga tampak seperti berikut :
[code language=”java”]
DefaultTableModel model = new DefaultTableModel();
table = new JTable(model);
panel.add(table, BorderLayout.CENTER);
panel.add(table.getTableHeader(), BorderLayout.PAGE_START);
JButton btnTampilkanDataTerbaru = new JButton("TAMPILKAN DATA TERBARU");
btnTampilkanDataTerbaru.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
try {
//Memuat Driver JDBC MySQL
Class.forName("com.mysql.jdbc.Driver");
//Melakukan Koneksi
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/herbal","root", "fatihrantissi");
statement = koneksi.createStatement();
resultset = statement.executeQuery("SELECT * FROM datastok");
[/code]
Lalu kita buatkan lima kolom seperti berikut :
[code language=”java”]
model.addColumn("ID");
model.addColumn("Nama Barang");
model.addColumn("Harga");
model.addColumn("Stok");
model.addColumn("Keterangan");
[/code]
Sekarang mari kita tampilkan baris pertama dengan kode seperti berikut :
[code language=”java”]
//menavigasi resultset ke baris pertama
resultset.first();
//menampilkan data dari baris pertama database
model.insertRow(0, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
[/code]
Jika dijalankan maka program kita akan tampak seperti berikut :
Kini kita pindahkan navigasi result set ke baris berikutnya dan menampilkan hasilnya ke baris kedua di tabel
[code language=”java”]
//menavigasi resultset ke baris berikutnya
resultset.next();
//menampilkan data dari baris kedua database
model.insertRow(1, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
//menavigasi resultset ke baris berikutnya
resultset.next();
//menampilkan data dari baris ketiga database
model.insertRow(2, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
[/code]
Jika dijalankan maka program kita akan tampak seperti gambar berikut :
Dan terakhir kita pindahkan kursor ke baris terakhir database dan menampilkannya di baris ke-4 JTable
[code language=”java”]
//menavigasi kursor result set ke baris terakhir database
resultset.last();
//menampilkan hasil dari resultset ke baris ke-4 JTable
model.insertRow(3, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
[/code]
Jika kita jalankan maka program kita akan tampak seperti berikut :
Kode lengkapnya tampak seperti berikut :
[code language=”java”]
package com.eclipseprogramming.BacaDatabase;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.border.TitledBorder;
import org.eclipse.wb.swing.FocusTraversalOnArray;
import java.awt.Component;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Tampilan extends JFrame {
private JPanel contentPane;
private JTable table;
/**
* Field untuk Database
*/
private Connection koneksi = null;
private Statement statement = null;
private ResultSet resultset = null;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Tampilan frame = new Tampilan();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Tampilan() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 731, 364);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblContohMenampilkanIsi = new JLabel("Contoh Menampilkan Isi Database di Swing");
lblContohMenampilkanIsi.setBounds(184, 0, 369, 32);
lblContohMenampilkanIsi.setFont(new Font("PT Sans Narrow", Font.BOLD, 24));
contentPane.add(lblContohMenampilkanIsi);
JLabel lblEclipseprogrammingcom = new JLabel("programming.rezaervani.com");
lblEclipseprogrammingcom.setBounds(279, 30, 178, 15);
contentPane.add(lblEclipseprogrammingcom);
JLabel lblStatus = new JLabel("STATUS");
lblStatus.setBounds(17, 249, 266, 39);
contentPane.add(lblStatus);
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "Data Produk", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(7, 57, 721, 182);
contentPane.add(panel);
panel.setLayout(new BorderLayout(0, 0));
DefaultTableModel model = new DefaultTableModel();
table = new JTable(model);
panel.add(table, BorderLayout.CENTER);
panel.add(table.getTableHeader(), BorderLayout.PAGE_START);
JButton btnTampilkanDataTerbaru = new JButton("TAMPILKAN DATA TERBARU");
btnTampilkanDataTerbaru.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
try {
//Memuat Driver JDBC MySQL
Class.forName("com.mysql.jdbc.Driver");
//Melakukan Koneksi
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/herbal","root", "fatihrantissi");
statement = koneksi.createStatement();
resultset = statement.executeQuery("SELECT * FROM datastok");
model.addColumn("ID");
model.addColumn("Nama Barang");
model.addColumn("Harga");
model.addColumn("Stok");
model.addColumn("Keterangan");
resultset.first();
model.insertRow(0, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
resultset.next();
model.insertRow(1, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
resultset.next();
model.insertRow(2, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
resultset.last();
model.insertRow(3, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
lblStatus.setText("Koneksi Berhasil");
} catch (Exception e1) {
}
}
});
btnTampilkanDataTerbaru.setBounds(488, 244, 229, 25);
contentPane.add(btnTampilkanDataTerbaru);
contentPane.setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[]{lblContohMenampilkanIsi, lblEclipseprogrammingcom, panel, table}));
}
}
[/code]
Sengaja kita tidak menggunakan iterasi untuk lebih memahami tentang navigasi resultset.
Jangan lupa pula untuk melengkapi kode diatas dengan closing connection, statement dan resultset.
Selamat bereksperimen (reza@rumahilmu.or.id)
Leave a Reply