Asalamualaikum, ini adalah artikel lanjutan dari Artikel Sebelumnya, sehingga di butuhkan project di dari artikel sebelum nya.
Artikel kali ini akan membahas update data dengan hibernate, tidak banyak yang akan di modifikasi dari project sebelum nya, kita cukup modifikasi file FormCRUD.java pada artikel sebelumnya.
FormCRUD.java
Modifikasi 1. Mengimplement MouseListener
Modifikasi 2. Menambahkan MouseListener ke tblKaryawan (JTable)
Modifikasi 3. Meng-overide method mouseClicked
Karena pada artikel sebelumnya, pada tombol simpan telah digunakan method saveOrUpdate() untuk menyimpan data, maka tidak akan ada modifikasi lagi di bagian tersebut.
Coba lakukan uji program.
Artikel kali ini akan membahas update data dengan hibernate, tidak banyak yang akan di modifikasi dari project sebelum nya, kita cukup modifikasi file FormCRUD.java pada artikel sebelumnya.
FormCRUD.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cobahibernate;
import entity.Karyawan;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JOptionPane;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import util.JTableHandler;
import util.SchemaBuilder;
/**
*
* @author kurniasyukur
*/
/*PENAMBAHAN 1 : Implemet MouseListener*/
public class FormCRUD extends javax.swing.JFrame implements KeyListener,MouseListener{
/**
* Creates new form FormCRUD
*/
private JTableHandler tableHandler = new JTableHandler();
public FormCRUD() {
initComponents();
txtKriteria.addKeyListener(this);
tableHandler.fillGrid(tblKaryawan,"");
/*PENAMBAHAN 2*/
tblKaryawan.addMouseListener(this);
}
/**
* 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")
//
private void initComponents() {
txtNik = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
txtNama = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
txtAlamat = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
tbnSimpan = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
tblKaryawan = new javax.swing.JTable();
txtKriteria = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Nik");
jLabel2.setText("Nama");
jLabel3.setText("Alamat");
tbnSimpan.setText("Simpan");
tbnSimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tbnSimpanActionPerformed(evt);
}
});
tblKaryawan.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"NIK", "NAMA", "ALAMAT"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane1.setViewportView(tblKaryawan);
jLabel4.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
jLabel4.setText("CARI(Berdasarkan Nama)");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(txtKriteria, javax.swing.GroupLayout.PREFERRED_SIZE, 305, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 452, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 38, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel2, javax.swing.GroupLayout.Alignment.TRAILING))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtNik, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtAlamat, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtNama, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(tbnSimpan, javax.swing.GroupLayout.Alignment.TRAILING))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel1)
.addComponent(txtNik, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(3, 3, 3))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtKriteria, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(5, 5, 5)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtNama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel3)
.addComponent(txtAlamat, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addComponent(tbnSimpan)
.addGap(0, 162, Short.MAX_VALUE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addContainerGap())
);
pack();
}//
private void tbnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
try {
new SchemaBuilder().build();
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
Karyawan k = new Karyawan(txtNik.getText(), txtNama.getText(), txtAlamat.getText());
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session s = sf.openSession();
s.beginTransaction();
s.saveOrUpdate(k);
s.getTransaction().commit();
sf.close();
JOptionPane.showMessageDialog(null, "tersimpan");
tableHandler.fillGrid(tblKaryawan,txtKriteria.getText());
clearForm();
} catch (HibernateException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
void clearForm(){
txtNik.setText("");
txtNama.setText("");
txtAlamat.setText("");
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(FormCRUD.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(FormCRUD.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(FormCRUD.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(FormCRUD.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FormCRUD().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tblKaryawan;
private javax.swing.JButton tbnSimpan;
private javax.swing.JTextField txtAlamat;
private javax.swing.JTextField txtKriteria;
private javax.swing.JTextField txtNama;
private javax.swing.JTextField txtNik;
// End of variables declaration
@Override
public void keyTyped(KeyEvent e) {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void keyPressed(KeyEvent e) {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void keyReleased(KeyEvent e) {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
Object source = e.getSource();
int keyCode = e.getKeyCode();
if (source.equals(txtKriteria)) {
if ((keyCode >= 65 && keyCode <= 90)
|| (keyCode >= 48 && keyCode <= 57)
|| (keyCode == 8)) {
tableHandler.fillGrid(tblKaryawan, txtKriteria.getText());
}
}
}
/*PENAMBAHAN 3*/
@Override
public void mouseClicked(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
txtNik.setText(tblKaryawan.getValueAt(tblKaryawan.getSelectedRow(), 0).toString());
txtNama.setText(tblKaryawan.getValueAt(tblKaryawan.getSelectedRow(), 1).toString());
txtAlamat.setText(tblKaryawan.getValueAt(tblKaryawan.getSelectedRow(), 2).toString());
}
@Override
public void mousePressed(MouseEvent e) {
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void mouseReleased(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void mouseEntered(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void mouseExited(MouseEvent e) {
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
Penjelasan Perubahan Kode :Modifikasi 1. Mengimplement MouseListener
/*PENAMBAHAN 1 : Implemet MouseListener*/
public class FormCRUD extends javax.swing.JFrame implements KeyListener,MouseListener{
/**
* Creates new form FormCRUD
*/
Modifikasi 2. Menambahkan MouseListener ke tblKaryawan (JTable)
public FormCRUD() {
initComponents();
txtKriteria.addKeyListener(this);
tableHandler.fillGrid(tblKaryawan,"");
/*PENAMBAHAN 2*/
tblKaryawan.addMouseListener(this);
}
Modifikasi 3. Meng-overide method mouseClicked
/*PENAMBAHAN 3*/
@Override
public void mouseClicked(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
txtNik.setText(tblKaryawan.getValueAt(tblKaryawan.getSelectedRow(), 0).toString());
txtNama.setText(tblKaryawan.getValueAt(tblKaryawan.getSelectedRow(), 1).toString());
txtAlamat.setText(tblKaryawan.getValueAt(tblKaryawan.getSelectedRow(), 2).toString());
}
Karena pada artikel sebelumnya, pada tombol simpan telah digunakan method saveOrUpdate() untuk menyimpan data, maka tidak akan ada modifikasi lagi di bagian tersebut.
private void tbnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
try {
new SchemaBuilder().build();
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
Karyawan k = new Karyawan(txtNik.getText(), txtNama.getText(), txtAlamat.getText());
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session s = sf.openSession();
s.beginTransaction();
s.saveOrUpdate(k);
s.getTransaction().commit();
sf.close();
JOptionPane.showMessageDialog(null, "tersimpan");
tableHandler.fillGrid(tblKaryawan,txtKriteria.getText());
clearForm();
} catch (HibernateException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
Coba lakukan uji program.
Comments
Post a Comment