Created
May 12, 2013 10:11
-
-
Save hendisantika/5563056 to your computer and use it in GitHub Desktop.
Shinobi CRUD with JAVA and SQLite
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package hendi.shinobi.ui; | |
import java.sql.Connection; | |
import java.sql.DriverManager; | |
import java.sql.SQLException; | |
import javax.swing.JOptionPane; | |
/** | |
* @author Agus Sumarna | |
*/ | |
public class DBConnection { | |
private Connection koneksi; | |
public Connection connect(){ | |
//untuk koneksi ke driver | |
try{ | |
Class.forName("org.sqlite.JDBC"); | |
JOptionPane.showMessageDialog(null, "berhasil load driver"); | |
}catch(ClassNotFoundException ex){ | |
JOptionPane.showMessageDialog(null, "Tidak ada Driver!\n" + ex); | |
} | |
//untuk koneksi ke database | |
try{ | |
//String url="jdbc:sqlite:db/litedb.om4gus"; | |
String url="jdbc:sqlite:db/shinobi.sqlite"; | |
koneksi=DriverManager.getConnection(url); | |
System.out.println("Berhasil koneksi"); | |
}catch(SQLException se){ | |
System.out.println("Gagal koneksi "+se); | |
JOptionPane.showMessageDialog(null,"Gagal Koneksi Database","Peringatan",JOptionPane.WARNING_MESSAGE); | |
} | |
return koneksi; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* To change this template, choose Tools | Templates | |
* and open the template in the editor. | |
*/ | |
package hendi.shinobi.ui; | |
import java.sql.SQLException; | |
import javax.swing.JOptionPane; | |
import javax.swing.table.DefaultTableModel; | |
/** | |
* | |
* @author Namikaze Minato | |
*/ | |
public class ShinobiUI extends javax.swing.JFrame { | |
private DefaultTableModel DftTabMode1; | |
/** | |
* Creates new form MahasiswaUI | |
*/ | |
public ShinobiUI() { | |
initComponents(); | |
loadTable(); | |
} | |
/** | |
* 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() { | |
jLabel1 = new javax.swing.JLabel(); | |
txtNoUrut = new javax.swing.JTextField(); | |
jLabel2 = new javax.swing.JLabel(); | |
txtNama = new javax.swing.JTextField(); | |
jLabel3 = new javax.swing.JLabel(); | |
txtAsal = new javax.swing.JTextField(); | |
jLabel4 = new javax.swing.JLabel(); | |
jLabel5 = new javax.swing.JLabel(); | |
txtLevel = new javax.swing.JTextField(); | |
jScrollPane1 = new javax.swing.JScrollPane(); | |
tblShinobi = new javax.swing.JTable(); | |
btnSimpan = new javax.swing.JButton(); | |
btnUbah = new javax.swing.JButton(); | |
btnHapus = new javax.swing.JButton(); | |
btnReset = new javax.swing.JButton(); | |
btnKeluar = new javax.swing.JButton(); | |
txtJutsu = new javax.swing.JTextField(); | |
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); | |
setTitle("Shinobi"); | |
addWindowListener(new java.awt.event.WindowAdapter() { | |
public void windowActivated(java.awt.event.WindowEvent evt) { | |
formWindowActivated(evt); | |
} | |
}); | |
jLabel1.setText("Nomor Urut"); | |
jLabel2.setText("Nama Lengkap"); | |
jLabel3.setText("Asal Desa"); | |
txtAsal.addActionListener(new java.awt.event.ActionListener() { | |
public void actionPerformed(java.awt.event.ActionEvent evt) { | |
txtAsalActionPerformed(evt); | |
} | |
}); | |
jLabel4.setText("Level"); | |
jLabel5.setText("Jutsu"); | |
tblShinobi.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" | |
} | |
)); | |
tblShinobi.addMouseListener(new java.awt.event.MouseAdapter() { | |
public void mouseClicked(java.awt.event.MouseEvent evt) { | |
tblShinobiMouseClicked(evt); | |
} | |
}); | |
jScrollPane1.setViewportView(tblShinobi); | |
btnSimpan.setText("Simpan"); | |
btnSimpan.addActionListener(new java.awt.event.ActionListener() { | |
public void actionPerformed(java.awt.event.ActionEvent evt) { | |
btnSimpanActionPerformed(evt); | |
} | |
}); | |
btnUbah.setText("Ubah"); | |
btnUbah.addActionListener(new java.awt.event.ActionListener() { | |
public void actionPerformed(java.awt.event.ActionEvent evt) { | |
btnUbahActionPerformed(evt); | |
} | |
}); | |
btnHapus.setText("Hapus"); | |
btnHapus.addActionListener(new java.awt.event.ActionListener() { | |
public void actionPerformed(java.awt.event.ActionEvent evt) { | |
btnHapusActionPerformed(evt); | |
} | |
}); | |
btnReset.setText("Reset"); | |
btnReset.addActionListener(new java.awt.event.ActionListener() { | |
public void actionPerformed(java.awt.event.ActionEvent evt) { | |
btnResetActionPerformed(evt); | |
} | |
}); | |
btnKeluar.setText("Keluar"); | |
btnKeluar.addActionListener(new java.awt.event.ActionListener() { | |
public void actionPerformed(java.awt.event.ActionEvent evt) { | |
btnKeluarActionPerformed(evt); | |
} | |
}); | |
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(19, 19, 19) | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) | |
.addComponent(jLabel2) | |
.addComponent(jLabel1) | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
.addComponent(jLabel3) | |
.addGroup(layout.createSequentialGroup() | |
.addGap(10, 10, 10) | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) | |
.addComponent(jLabel5) | |
.addComponent(jLabel4))))) | |
.addGap(36, 36, 36) | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) | |
.addComponent(txtNama, javax.swing.GroupLayout.DEFAULT_SIZE, 208, Short.MAX_VALUE) | |
.addComponent(txtNoUrut) | |
.addComponent(txtAsal) | |
.addComponent(txtLevel) | |
.addComponent(txtJutsu))) | |
.addGroup(layout.createSequentialGroup() | |
.addContainerGap() | |
.addComponent(btnSimpan) | |
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |
.addComponent(btnUbah) | |
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |
.addComponent(btnHapus) | |
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |
.addComponent(btnReset) | |
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
.addComponent(btnKeluar))) | |
.addGap(23, 23, 23) | |
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 452, javax.swing.GroupLayout.PREFERRED_SIZE) | |
.addContainerGap(18, Short.MAX_VALUE)) | |
); | |
layout.setVerticalGroup( | |
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
.addGroup(layout.createSequentialGroup() | |
.addGap(14, 14, 14) | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) | |
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE) | |
.addGroup(layout.createSequentialGroup() | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
.addComponent(jLabel1) | |
.addComponent(txtNoUrut, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) | |
.addGap(18, 18, 18) | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
.addComponent(jLabel2) | |
.addComponent(txtNama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) | |
.addGap(18, 18, 18) | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
.addComponent(jLabel3) | |
.addComponent(txtAsal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) | |
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
.addComponent(jLabel4) | |
.addComponent(txtLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) | |
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |
.addComponent(jLabel5) | |
.addComponent(txtJutsu, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) | |
.addGap(18, 18, 18) | |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) | |
.addComponent(btnSimpan) | |
.addComponent(btnUbah) | |
.addComponent(btnHapus) | |
.addComponent(btnReset) | |
.addComponent(btnKeluar)))) | |
.addContainerGap(29, Short.MAX_VALUE)) | |
); | |
pack(); | |
}// </editor-fold> | |
private void txtAsalActionPerformed(java.awt.event.ActionEvent evt) { | |
// TODO add your handling code here: | |
} | |
private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { | |
System.exit(0); | |
} | |
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { | |
java.sql.Connection koneksi = new DBConnection().connect(); | |
try{ | |
String sql = "insert into ninja(id, nama, asaldesa, level, jutsu)" | |
+ " values(?,?,?,?,?)"; | |
java.sql.PreparedStatement stmt = koneksi.prepareStatement(sql); | |
try{ | |
stmt.setString(1,txtNoUrut.getText()); | |
stmt.setString(2,txtNama.getText()); | |
stmt.setString(3,txtAsal.getText()); | |
stmt.setString(4,txtLevel.getText()); | |
stmt.setString(5,txtJutsu.getText()); | |
stmt.executeUpdate(); | |
JOptionPane.showMessageDialog(null,"Data berhasil disimpan!"); | |
//bersihkan teks | |
reset(); | |
loadTable(); | |
}catch(SQLException se){ | |
//System.out.println("Gagal di simpan"); | |
JOptionPane.showMessageDialog(null,"Data Gagal disimpan!" | |
+ "\nDengan Pesan : " + se.getMessage()); | |
} | |
stmt.close(); | |
}catch(Exception e){} | |
} | |
private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { | |
java.sql.Connection koneksi = new DBConnection().connect(); | |
String sql="update ninja set nama = ?, asaldesa = ?, level = ?, jutsu = ? where id = '" + txtNoUrut.getText()+"'"; | |
java.sql.PreparedStatement stmt = null; | |
try { | |
stmt = koneksi.prepareStatement(sql); | |
} catch (SQLException ex) {} | |
try{ | |
stmt.setString(1,txtNama.getText()); | |
stmt.setString(2,txtAsal.getText()); | |
stmt.setString(3,txtLevel.getText()); | |
stmt.executeUpdate(); | |
JOptionPane.showMessageDialog(null,"Data Berhasil diubah!"); | |
reset(); | |
loadTable(); | |
}catch(SQLException se){ | |
JOptionPane.showMessageDialog(null,"Data gagal diubah!" | |
+ "\nTerjadi error dengan pesan : " + se.getMessage()); | |
} | |
} | |
private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { | |
// TODO add your handling code here: | |
int ok=JOptionPane.showConfirmDialog(null,"Apakah Anda yakin?","Konfirmasi",JOptionPane.YES_NO_OPTION); | |
if(ok==0){ | |
try{ | |
//panggil method koneksi | |
java.sql.Connection koneksi = new DBConnection().connect(); | |
String sql="delete from ninja where id = '" + txtNoUrut.getText()+"'"; | |
java.sql.PreparedStatement stmt=koneksi.prepareStatement(sql); | |
stmt.executeUpdate(); | |
//bersihkan teks | |
JOptionPane.showMessageDialog(null,"Data Berhasil dihapus"); | |
reset(); | |
}catch(Exception e){ | |
JOptionPane.showMessageDialog(null,"Data Gagal dihapus!" | |
+ "\nDengan pesan error : " + e.getMessage()); | |
} | |
} | |
} | |
private void reset(){ | |
txtNoUrut.setText(null); | |
txtNama.setText(null); | |
txtAsal.setText(null); | |
txtLevel.setText(null); | |
txtJutsu.setText(null); | |
txtNoUrut.requestFocus(); | |
} | |
private void tampilData(){ | |
//saat pilih record | |
int baris = tblShinobi.getSelectedRow(); | |
String id = DftTabMode1.getValueAt(baris, 0).toString(); | |
String nama = DftTabMode1.getValueAt(baris, 1).toString(); | |
String asal = DftTabMode1.getValueAt(baris, 2).toString(); | |
String level = DftTabMode1.getValueAt(baris, 3).toString(); | |
String justu = DftTabMode1.getValueAt(baris, 4).toString(); | |
txtNoUrut.setText(id); | |
txtNama.setText(nama); | |
txtAsal.setText(asal); | |
txtLevel.setText(level); | |
txtJutsu.setText(justu); | |
} | |
private void loadTable(){ | |
Object[] Baris = {"Id","Nama","Asal Desa","Level", "Jutsu"}; | |
DftTabMode1 = new DefaultTableModel(null, Baris); | |
tblShinobi.setModel(DftTabMode1); | |
//panggil method koneksi | |
java.sql.Connection koneksi = new DBConnection().connect(); | |
//untuk menampilkan di table | |
try{ | |
String sql="Select * from ninja order by id asc"; | |
java.sql.Statement stmt=koneksi.createStatement(); | |
java.sql.ResultSet rslt=stmt.executeQuery(sql); | |
while(rslt.next()){ | |
String id = rslt.getString("id"); | |
String nama = rslt.getString("nama"); | |
String asal = rslt.getString("asaldesa"); | |
String level = rslt.getString("level"); | |
String jutsu = rslt.getString("jutsu"); | |
String[] dataField={id, nama, asal, level, jutsu}; | |
DftTabMode1.addRow(dataField); | |
} | |
}catch(Exception ex){} | |
} | |
private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { | |
reset(); | |
} | |
private void tblShinobiMouseClicked(java.awt.event.MouseEvent evt) { | |
// TODO add your handling code here: | |
tampilData(); | |
} | |
private void formWindowActivated(java.awt.event.WindowEvent evt) { | |
// TODO add your handling code here: | |
} | |
/** | |
* @param args the command line arguments | |
*/ | |
public static void main(String args[]) { | |
/* Set the Nimbus look and feel */ | |
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> | |
/* 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 ("Windows".equals(info.getName())) { | |
javax.swing.UIManager.setLookAndFeel(info.getClassName()); | |
break; | |
} | |
} | |
} catch (ClassNotFoundException ex) { | |
java.util.logging.Logger.getLogger(ShinobiUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
} catch (InstantiationException ex) { | |
java.util.logging.Logger.getLogger(ShinobiUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
} catch (IllegalAccessException ex) { | |
java.util.logging.Logger.getLogger(ShinobiUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
} catch (javax.swing.UnsupportedLookAndFeelException ex) { | |
java.util.logging.Logger.getLogger(ShinobiUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); | |
} | |
//</editor-fold> | |
/* Create and display the form */ | |
java.awt.EventQueue.invokeLater(new Runnable() { | |
public void run() { | |
new ShinobiUI().setVisible(true); | |
} | |
}); | |
} | |
// Variables declaration - do not modify | |
private javax.swing.JButton btnHapus; | |
private javax.swing.JButton btnKeluar; | |
private javax.swing.JButton btnReset; | |
private javax.swing.JButton btnSimpan; | |
private javax.swing.JButton btnUbah; | |
private javax.swing.JLabel jLabel1; | |
private javax.swing.JLabel jLabel2; | |
private javax.swing.JLabel jLabel3; | |
private javax.swing.JLabel jLabel4; | |
private javax.swing.JLabel jLabel5; | |
private javax.swing.JScrollPane jScrollPane1; | |
private javax.swing.JTable tblShinobi; | |
private javax.swing.JTextField txtAsal; | |
private javax.swing.JTextField txtJutsu; | |
private javax.swing.JTextField txtLevel; | |
private javax.swing.JTextField txtNama; | |
private javax.swing.JTextField txtNoUrut; | |
// End of variables declaration | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment