menggunakan tabel model dynamic

Posted: 29 Mei 2010 in programming

Assalamu’alaikum Wr. Wb.

sebelumnya jangan lupa tambahkan library MySQL connector java

sekarang kita akan membahas bagaimana menampilkan data dari database MySQL ke jtable secara dinamic. Jika mungkin antum pernah coding cara menampilkan data dari tabel mysql ke jtable dengan coding satu per satu artinya masih harus menentukan jumlah kolom, header kolom, jumlah baris, dan lain sebagainya, sehingga jika cara konvensional ini tidak efisien dimana setiap tabel yang berbeda berarti berbeda pula parameter pengesetan table modenya. Setelah beberapa hari mencoba akhirnya ketemu juga bagaimana agar mengeset tabel model secara dinamic.

cara ini sebelumnya mencontoh konsep dari VB .Net karena memang sebelumnya saya coding di VB .Net.

KONSEP 1

  1. Gunakanlah segala kelebihan OOP yaitu 1 dipakai bersama. dalam contoh ini koneksi.java mememuat method yang nantinya dipakai oleh class lain.
  2. Pikirkan kedepan. Tiadak mengapa suatu blok script ruetnya minta ampun alias panjang sekali. Namun karena menggunakan konsep diatas maka cuma 1 saja yang ruet. dalam contoh ini method tampil_tabel() yang sangat panjang. Saya sampai hampir frustasi membuatnya. Class yang menggunakan method ini cman mengirimkan parameter sql nya saja.
  3. Pertanyaan ????? lebih penting mana INTERFACE dengan SYSTEM nya??? jika saya,…… saya lebih suka mnegurusi SYSTEM nya. karena inilah paling krusial dalam sebuah program. kalau interface gampang meski saya tidak pandai design. buat 1 form yang bagus trus form lainnya tinggal refactor…….

berikut koneksi.java pada package konektor_mysql;

kita upgrade dari file koneksi.java sebelumnya.


==========koneksi.java pada package konektor_mysql============

/*
* class ini digunakan untuk proses eksekusi operasi sql
* class yang membuat objek dari kelas ini hanya tinggal memanggil methodnya saja
*/

package konektor_mysql;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;

/**
*
* @author tarecha
* email : agung.tarecha@gmail.com
*/
public class koneksi
{
public String sql=””;
public Connection koneksi_mysql;
public ResultSet rs;
public Statement statement;
public ResultSetMetaData meta=null;
public DefaultTableModel model=new DefaultTableModel();

public String[] hasilQuery;
private String status=””; //status eksekusi query
String statusKoneksi=”gagal”;
String driver=”com.mysql.jdbc.Driver”;
public static String host=”localhost”;
public static String username=”root”;
static String password=””;
static String port=”3306″;
String database=”tarecha”;
String url=”jdbc:mysql://” +
host + “:” +
port + “/” +
database;
String parameter=”&tcpKeepAlive=true&autoReconnect=true&allowMultiQueries=true”;
String str_koneksi=url+”?user=”+username+”&password=”+password+parameter;

public koneksi()

{
openKoneksi();

}

public void openKoneksi()
{
try
{
//membuka koneksi untuk operasi query
//str_koneksi di definisikan lagi untuk mengambil data dari form_connect
//jadi jika parameter di form_connect berbeda menggunakan string koneksi baru
url=”jdbc:mysql://” + host + “:” + port + “/” +database;
str_koneksi=url+”?user=”+username+”&password=”+password+parameter;
Class.forName(driver).newInstance();
koneksi_mysql=DriverManager.getConnection(str_koneksi);
statement=koneksi_mysql.createStatement();
statusKoneksi=”sukses”;

}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, “Warning 1 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
statusKoneksi=”gagal”;

}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, “Warning 2!\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
statusKoneksi=”gagal”;

}

finally
{

}
}
public void closeKoneksi()
{
/*
try
{
//menutup koneksi untuk release resource

statement.close();
rs.close();
koneksi_mysql.close();

}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, “Warning 3 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, “Warning 4!\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}

finally
{

}
* */
}

public String queryUpdate(String sqlQuery)
//method ini digunakan untuk mengeksekusi sytax yang tidak membutuhkan nilai
//kembali seperti insert, update, delete
{
try
{
openKoneksi();
//executeUpdate mengembalikan nilai 0 bila eksekusi gagal
//dan mengembalikan nilai 1 bila berhasil
if(statement.executeUpdate(sqlQuery)==0)
status=”gagal”;
else
status=”berhasil”;

closeKoneksi();

}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, “Warning 5 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, “Warning 6 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}

finally
{
return status;
}

}

public String querySelect(String sqlQuery )
//method ono digunakan untuk mengeksekusi query yang membutuhkan nilai kembalian
//seperti select count(*), select curtime()
//argumen kolom merupakan nama kolom dari hasil eksekusi
{
String hasil=””;
try
{

openKoneksi();
rs = statement.executeQuery(sqlQuery);
//meta data menampung informasi tabel mysql seperti nama kolom dll
meta = rs.getMetaData();
rs.last();
hasilQuery=new String[rs.getRow()];
rs.beforeFirst();
int i=0;
while(rs.next())

{
//memasukkan nilai kembalian ke variabel hasilQuery
hasilQuery[i]=(rs.getString(meta.getColumnLabel(1)));
i++;

}
if(hasilQuery.length>0)
{
hasil=hasilQuery[0];
}

}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, “Warning 9 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, “Warning 10 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}

finally
{
closeKoneksi();

return hasil;
}

}

public void tampil_tabel(String sqlQuery)
{

try
{
openKoneksi();
//mengeksekusi query untuk menampilkan tabel
querySelect(sqlQuery);
//ke baris terakhir untuk mendapatkan jumlah baris degan getRow();
rs.last();
int jumlahbaris=rs.getRow();
//mendapatkan jumlah kolom
int jumlahkolom=meta.getColumnCount();

String[] namakolom=new String[jumlahkolom];
//nama kolom
for(int i=1;i<=jumlahkolom;i++)
{
namakolom[i-1]=meta.getColumnLabel(i);

}

//array
String[][] datakategori=new String[jumlahbaris][jumlahkolom];

model=new DefaultTableModel(datakategori,namakolom);

rs.beforeFirst();
int baris=0;
while (rs.next()) {
for(int i=0;i<jumlahkolom;i++)
{
model.setValueAt(rs.getString(meta.getColumnLabel(i+1)),baris, i);
}

baris++;
}

}

catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, “Warning 12 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, “Warning 13 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}

finally
{
closeKoneksi();
}

}

}

================end of koneksi.java=======================

selanjutnya kita buat class yang mengimplementasikan koneksi.java.

class ini ada table dimana script model table ini memanggil method tampil table pada koneksi.java. model table akan dibentuk sesuai sql yang dikirimkan.

jadi model akan berubah sesuai dengan script sql.

berikut tugas_1.java pada package modul_9;

===============tugas_1.java pada package modul_9=============

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/*
* tugas_1.java
*
* Created on May 12, 2010, 8:48:12 AM
*/

package modul_9;
import java.sql.*;
import javax.swing.*;
import konektor_mysql.*;

/**
*
* @author pemrograman29
*/
public class tugas_1 extends javax.swing.JFrame {

koneksi databaseku=new koneksi();
String nama=””;
String kode=””;
String status=””;
/** Creates new form tugas_1 */
public tugas_1()
{
super(“Data pegawai — Author : tarecha”);
initComponents();
tampil();
txt_nama.grabFocus();

}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings(“unchecked”)
// <editor-fold defaultstate=”collapsed” desc=”Generated Code”>
private void initComponents() {

jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
txt_kode = new javax.swing.JTextField();
btn_cari = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
txt_nama = new javax.swing.JTextField();
btn_update = new javax.swing.JButton();
btn_delete = new javax.swing.JButton();
btn_save = new javax.swing.JButton();
btn_view = new javax.swing.JButton();
btn_clear = new javax.swing.JButton();
btn_quit = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
tabelKu = new javax.swing.JTable();
txt_status = new javax.swing.JLabel();

jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
“Title 1”, “Title 2”, “Title 3”, “Title 4”
}
));
jScrollPane1.setViewportView(jTable1);

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle(“contoh”);
setResizable(false);

jLabel1.setText(“Kode   : “);

btn_cari.setText(“Cari”);
btn_cari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_cariActionPerformed(evt);
}
});

jLabel2.setText(“Nama :”);

btn_update.setText(“Update”);
btn_update.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_updateActionPerformed(evt);
}
});

btn_delete.setText(“Delete”);
btn_delete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_deleteActionPerformed(evt);
}
});

btn_save.setText(“Save”);
btn_save.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_saveActionPerformed(evt);
}
});

btn_view.setText(“View”);

btn_clear.setText(“Clear”);
btn_clear.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_clearActionPerformed(evt);
}
});

btn_quit.setText(“Quit”);
btn_quit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_quitActionPerformed(evt);
}
});

tabelKu.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
“Title 1”, “Title 2”, “Title 3”, “Title 4”
}
));
tabelKu.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabelKuMouseClicked(evt);
}
});
jScrollPane2.setViewportView(tabelKu);

txt_status.setText(“Status : “);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(23, 23, 23)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txt_nama, javax.swing.GroupLayout.DEFAULT_SIZE, 205, Short.MAX_VALUE)
.addComponent(txt_kode, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(btn_save)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_update)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_delete)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_cari, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(8, 8, 8)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txt_status)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addGroup(layout.createSequentialGroup()
.addGap(109, 109, 109)
.addComponent(btn_view, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_clear)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_quit)))
.addContainerGap(80, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(65, 65, 65)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel2)
.addGap(45, 45, 45))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(59, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txt_kode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_cari))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_nama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(36, 36, 36)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btn_delete)
.addComponent(btn_update)
.addComponent(btn_save))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txt_status)
.addGap(8, 8, 8)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 199, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(27, 27, 27)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btn_view)
.addComponent(btn_quit)
.addComponent(btn_clear))
.addContainerGap(22, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

private void btn_saveActionPerformed(java.awt.event.ActionEvent evt) {

nama=txt_nama.getText();
databaseku.sql=”insert into tabel_1(nama) values(‘”+nama+”‘)”;
status = databaseku.queryUpdate(databaseku.sql);
txt_status.setText(“Status : “+ nama + ” ” + status +”disimpan”);

tampil();

// TODO add your handling code here:
}

private void btn_quitActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.exit(0);
}

private void btn_clearActionPerformed(java.awt.event.ActionEvent evt) {
txt_kode.setText(“”);
txt_nama.setText(“”);
}

private void btn_cariActionPerformed(java.awt.event.ActionEvent evt) {
kode=txt_kode.getText();
databaseku.sql=”select nama from tabel_1 where no='”+kode+”‘”;
nama=databaseku.querySelect(databaseku.sql);

if (!nama.equals(“”))
{
txt_nama.setText(nama);
txt_status.setText(“Status : “+ kode + ” ditemukan”);
}
else
{
txt_status.setText(“Status : “+ kode + ” tidak ditemukan”);
txt_nama.setText(“”);
txt_kode.grabFocus();
}

}

private void btn_updateActionPerformed(java.awt.event.ActionEvent evt) {
kode=txt_kode.getText();
nama=txt_nama.getText();
databaseku.sql=”update tabel_1 set nama='”+ nama +”‘ where no='”+ kode +”‘;”;
status = databaseku.queryUpdate(databaseku.sql);
txt_status.setText(“Status : “+ nama + ” ” + status +” diupdate”);
tampil();
}

private void btn_deleteActionPerformed(java.awt.event.ActionEvent evt) {
kode=txt_kode.getText();

databaseku.sql=”delete from tabel_1 where no='”+kode+”‘;”;
status = databaseku.queryUpdate(databaseku.sql);
txt_status.setText(“Status : “+ kode + ” ” + status +” dihaspus”);
tampil();
}

private void tabelKuMouseClicked(java.awt.event.MouseEvent evt) {
txt_kode.setText(
tabelKu.getValueAt(
tabelKu.getSelectedRow(),
0).toString());
txt_nama.setText(
tabelKu.getValueAt(
tabelKu.getSelectedRow(),
1).toString());
}
private void tampil() {
try {

databaseku.sql=”select no as ‘Nomer ku’,nama as ‘Nama Ku’ from tabel_1 ” +
” group by no asc”;
databaseku.tampil_tabel(databaseku.sql);
tabelKu.setModel(databaseku.model);

//lbr kolom

} catch (Exception ex) {
JOptionPane.showMessageDialog(
this,
“Error @ “+ex.getMessage(),
“Peringatan”,
JOptionPane.ERROR_MESSAGE);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new tugas_1().setVisible(true);

}
});
}

// Variables declaration – do not modify
private javax.swing.JButton btn_cari;
private javax.swing.JButton btn_clear;
private javax.swing.JButton btn_delete;
private javax.swing.JButton btn_quit;
private javax.swing.JButton btn_save;
private javax.swing.JButton btn_update;
private javax.swing.JButton btn_view;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable jTable1;
private javax.swing.JTable tabelKu;
private javax.swing.JTextField txt_kode;
private javax.swing.JTextField txt_nama;
private javax.swing.JLabel txt_status;
// End of variables declaration

}

======================end of package modul_9==============

berukut sedikit screenshot.

pada gambar dibawah merupakan coding dari tugas_1.java

pada method tampil()

untuk memasukkan sql pada

databaseku.sql=  ” select no as ‘Nomer ku’ , nama as ‘Nama Ku’ from tabel_1 ” +
” group by no asc”;

lalu memanggil method

databaseku.tampil_tabel(databaseku.sql);

jadi jika tablenya berubah tinggal ganti script sqlnya saja

lalu sebuah objek model yang didekslarasikan secara public

sehinga objek jtable tabelKu.setModel tinggal memasukkan modelnya saja

tabelKu.setModel(databaseku.model);

cukup praktis bukan ???? ^_^

form lain tinggal mengaplikasikan nya saja……

tidak perlu repot2 coding beda tiap table

^_^


contoh diatas adalah implementasinya..

bila diperhaitkan header kolom tersebut targantung pada script sql.

saya menggunakan alias no as ‘Nomer ku’ dan  nama as ‘Nama Ku’

header mengikuti apa yang tampil pada script tersebut bila dijalankan melalui console mysql.

look at this ^_^


saya rasa cukup sekian.

dinantikan kritik dan sarannya

Wassalamu’alaikum Wr. Wb.

/*
* class ini digunakan untuk proses eksekusi operasi sql
* class yang membuat objek dari kelas ini hanya tinggal memanggil methodnya saja
*/package konektor_mysql;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;

/**
*
* @author tarecha
* email : agung.tarecha@gmail.com
*/
public class koneksi
{
public String sql=””;
public Connection koneksi_mysql;
public ResultSet rs;
public Statement statement;
public ResultSetMetaData meta=null;
public DefaultTableModel model=new DefaultTableModel();

public String[] hasilQuery;
private String status=””; //status eksekusi query
String statusKoneksi=”gagal”;
String driver=”com.mysql.jdbc.Driver”;
public static String host=”localhost”;
public static String username=”root”;
static String password=””;
static String port=”3306″;
String database=”tarecha”;
String url=”jdbc:mysql://” +
host + “:” +
port + “/” +
database;
String parameter=”&tcpKeepAlive=true&autoReconnect=true&allowMultiQueries=true”;
String str_koneksi=url+”?user=”+username+”&password=”+password+parameter;

public koneksi()

{
openKoneksi();

}

public void openKoneksi()
{
try
{
//membuka koneksi untuk operasi query
//str_koneksi di definisikan lagi untuk mengambil data dari form_connect
//jadi jika parameter di form_connect berbeda menggunakan string koneksi baru
url=”jdbc:mysql://” + host + “:” + port + “/” +database;
str_koneksi=url+”?user=”+username+”&password=”+password+parameter;
Class.forName(driver).newInstance();
koneksi_mysql=DriverManager.getConnection(str_koneksi);
statement=koneksi_mysql.createStatement();
statusKoneksi=”sukses”;

}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, “Warning 1 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
statusKoneksi=”gagal”;

}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, “Warning 2!\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
statusKoneksi=”gagal”;

}

finally
{

}
}
public void closeKoneksi()
{
/*
try
{
//menutup koneksi untuk release resource

statement.close();
rs.close();
koneksi_mysql.close();

}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, “Warning 3 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, “Warning 4!\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}

finally
{

}
* */
}

public String queryUpdate(String sqlQuery)
//method ini digunakan untuk mengeksekusi sytax yang tidak membutuhkan nilai
//kembali seperti insert, update, delete
{
try
{
openKoneksi();
//executeUpdate mengembalikan nilai 0 bila eksekusi gagal
//dan mengembalikan nilai 1 bila berhasil
if(statement.executeUpdate(sqlQuery)==0)
status=”gagal”;
else
status=”berhasil”;

closeKoneksi();

}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, “Warning 5 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, “Warning 6 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}

finally
{
return status;
}

}

public String querySelect(String sqlQuery )
//method ono digunakan untuk mengeksekusi query yang membutuhkan nilai kembalian
//seperti select count(*), select curtime()
//argumen kolom merupakan nama kolom dari hasil eksekusi
{
String hasil=””;
try
{

openKoneksi();
rs = statement.executeQuery(sqlQuery);
//meta data menampung informasi tabel mysql seperti nama kolom dll
meta = rs.getMetaData();
rs.last();
hasilQuery=new String[rs.getRow()];
rs.beforeFirst();
int i=0;
while(rs.next())

{
//memasukkan nilai kembalian ke variabel hasilQuery
hasilQuery[i]=(rs.getString(meta.getColumnLabel(1)));
i++;

}
if(hasilQuery.length>0)
{
hasil=hasilQuery[0];
}

}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, “Warning 9 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, “Warning 10 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}

finally
{
closeKoneksi();

return hasil;
}

}

public void tampil_tabel(String sqlQuery)
{

try
{
openKoneksi();
//mengeksekusi query untuk menampilkan tabel
querySelect(sqlQuery);
//ke baris terakhir untuk mendapatkan jumlah baris degan getRow();
rs.last();
int jumlahbaris=rs.getRow();
//mendapatkan jumlah kolom
int jumlahkolom=meta.getColumnCount();

String[] namakolom=new String[jumlahkolom];
//nama kolom
for(int i=1;i<=jumlahkolom;i++)
{
namakolom[i-1]=meta.getColumnLabel(i);

}

//array
String[][] datakategori=new String[jumlahbaris][jumlahkolom];

model=new DefaultTableModel(datakategori,namakolom);

rs.beforeFirst();
int baris=0;
while (rs.next()) {
for(int i=0;i<jumlahkolom;i++)
{
model.setValueAt(rs.getString(meta.getColumnLabel(i+1)),baris, i);
}

baris++;
}

}

catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, “Warning 12 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, “Warning 13 !\n” +
“Error @ ” + ex.getMessage(),
“Warning”,JOptionPane.WARNING_MESSAGE);
}

finally
{
closeKoneksi();
}

}

}

Komentar
  1. muakassiiihh gann… ilmu nya… bermanfaat banget buat ane yg lagi nyusun skripsi.,.,. hehe

    semoga agan tambah sukses dan jaya selalu.,., amin ya Allah
    hanya doa yg bisa ane kasih hehe

  2. sama2 gan… semoga bermanfaat

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s