Posted in SQLite
DefaultTableModel tableModel; Object data[] = new Object[10]; String tempNama, tempJurusan;Kembali ke tampilan Design, dimulai dari panel utama, klik kanan button Masuk, pilih Events, pilih action, pilih actionPerformed dan ketikkan code berikut
CardLayout cl = (CardLayout)panelForm.getLayout(); cl.show(panelForm, "entry");Maksud dari code di atas adalah, ketika kita menekan button Masuk, maka kita akan diarahkan ke panel card entry. Ulangi langkah di atas untuk button Entry dan button Tabel dan sesuaikan codenya. Untuk button CreateDB berikan actionPerformed dengan code sebagai berikut:
try { Class.forName("org.sqlite.JDBC"); Connection con = DriverManager.getConnection("jdbc:sqlite:belajarSQLite.db"); Statement stat = con.createStatement(); stat.executeUpdate("drop table if exists mahasiswa;"); stat.executeUpdate("create table mahasiswa (nama, jurusan);"); tabel(); con.close(); JOptionPane.showMessageDialog(null, "Database Berhasil Dibuat", "Selamat", JOptionPane.INFORMATION_MESSAGE); } catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } }Untuk button Reset berikan actionPerformed dengan code sebagai berikut:
txtNama.setText(""); txtJurusan.setText("");Untuk button Simpan juga sama dengan button yang lain, codenya sebagai berikut:
try { simpanData(); } catch (Exception ex) { Logger.getLogger(Form.class.getName()).log(Level.SEVERE, null, ex); }Sementara untuk method simpanData seperti ini code nya:
private void simpanData() throws Exception{ try { Class.forName("org.sqlite.JDBC"); Connection con = DriverManager.getConnection("jdbc:sqlite:belajarSQLite.db"); Statement stat = con.createStatement(); PreparedStatement prep = con.prepareStatement("insert into mahasiswa values (?, ?);"); prep.setString(1, txtNama.getText()); prep.setString(2, txtJurusan.getText()); prep.addBatch(); con.setAutoCommit(false); prep.executeBatch(); con.setAutoCommit(true); tabel(); con.close(); JOptionPane.showMessageDialog(null, "Data Berhasil Disimpan", "Selamat", JOptionPane.INFORMATION_MESSAGE); txtNama.setText(""); txtJurusan.setText(""); } catch (SQLException e) { JOptionPane.showMessageDialog(null, "Koneksi Gagal", "Error", JOptionPane.ERROR_MESSAGE); } catch (ClassNotFoundException cnfe){ JOptionPane.showMessageDialog(null, "Koneksi Gagal", "Error", JOptionPane.ERROR_MESSAGE); } }Selanjutnya kita akan menampilkan data yang telah diinput tersebut dalam bentuk tabel, klik kanan tabel, pilih Events, pilih Mouse, pilih mouseClicked dan isikan code berikut:
int n = 0; n = jTable1.getSelectedRow(); txtNama.setText(jTable1.getValueAt(n, 0).toString()); txtJurusan.setText(jTable1.getValueAt(n, 1).toString());Supaya tabel tersebut akan berubah secara otomatis ketika ada data yang masuk, maka buatlah method tabel dan ketikkan code berikut:
private void tabel() { try { jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object[][]{}, new String []{"Nama", "Jurusan"})); Class.forName("org.sqlite.JDBC"); Connection con = DriverManager.getConnection("jdbc:sqlite:belajarSQLite.db"); Statement stat = con.createStatement(); ResultSet rs = stat.executeQuery("select * from mahasiswa;"); tableModel = (DefaultTableModel)jTable1.getModel(); while (rs.next()){ for (int i=0;i<2;i++){ data[i]=rs.getString(i+1); } tableModel.addRow(data); } rs.close(); con.close(); } catch (Exception e) { } }Untuk button Update, berikan code berikut:
int n = 0; n = jTable1.getSelectedRow(); tempNama = (String) jTable1.getValueAt(n, 0); tempJurusan = (String) jTable1.getValueAt(n, 1); try { updatePane(); } catch (Exception ex) { Logger.getLogger(Form.class.getName()).log(Level.SEVERE, null, ex); }Dan untuk method updatePane() adalah sebagai berikut:
private void updatePane() throws Exception{ JTextField Nama = new JTextField(10); JTextField Jurusan = new JTextField(10); JPanel myPanel = new JPanel(); myPanel.add(new JLabel("Nama")); myPanel.add(Nama); myPanel.add(Box.createHorizontalStrut(15)); // a spacer myPanel.add(new JLabel("Jurusan")); myPanel.add(Jurusan); int result = JOptionPane.showConfirmDialog(null, myPanel, "Masukkan data yang benar:", JOptionPane.OK_CANCEL_OPTION); if (result == JOptionPane.OK_OPTION) { try { Class.forName("org.sqlite.JDBC"); Connection con = DriverManager.getConnection("jdbc:sqlite:belajarSQLite.db"); Statement stat = con.createStatement(); PreparedStatement prep = con.prepareStatement("update mahasiswa set nama=?, jurusan =? where nama='"+tempNama+"';"); prep.setString(1, Nama.getText()); prep.setString(2, Jurusan.getText()); prep.addBatch(); con.setAutoCommit(false); prep.executeBatch(); con.setAutoCommit(true); tabel(); con.close(); JOptionPane.showMessageDialog(null, "Data Berhasil Diupdate", "Selamat", JOptionPane.INFORMATION_MESSAGE); } catch (SQLException e) { JOptionPane.showMessageDialog(null, "Koneksi Gagal", "Error", JOptionPane.ERROR_MESSAGE); System.out.println(e.getMessage()); } catch (ClassNotFoundException cnfe){ JOptionPane.showMessageDialog(null, "Koneksi Gagal", "Error", JOptionPane.ERROR_MESSAGE); System.out.println(cnfe.getMessage()); } } }Terakhir adalah button Delete dengan code sebagai berikut:
int n = 0; String temp; n = jTable1.getSelectedRow(); temp = (String) jTable1.getValueAt(n, 0); if(JOptionPane.showConfirmDialog(null,"Anda Yakin Akan Menghapus Data Ini? ","Peringatan",JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION) { try { Class.forName("org.sqlite.JDBC"); Connection con = DriverManager.getConnection("jdbc:sqlite:belajarSQLite.db"); Statement stat = con.createStatement(); stat.executeUpdate("delete from Mahasiswa where Nama = '"+temp+"'"); tabel(); con.close(); } catch (Exception ex) { Logger.getLogger(Form.class.getName()).log(Level.SEVERE, null, ex); } }Silakan dicoba-coba source code di atas, source code dapat di download di sini Alhamdulillah, akhirnya tutorial membuat aplikasi data entry sqlite java selesai sudah. Semoga bermanfaat.