Menampilkan data dari database MySQL ke dalam JTabel. 1. Buat tampilan menggunakan seperti ini dan simpan dalam class MainFrame.java
2. Ubah nama pada jTextField1 menjadi txtSearch dan jTable1 menjadi tblUser. Cara mengubahnya : klik kanan pada objeknya, dan pilih Change Variable Name. 3. Buat sebuah class Koneksi.java dan isi dengan kode berikut ini. import java.sql.Connection; import java.sql.DriverManager; import javax.swing.JOptionPane; public class Koneksi { private Connection connection; public Koneksi() { try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/nama_database"; // diganti dengan nama db String user = "root"; String pwd = ""; connection = DriverManager.getConnection(url, user, pwd); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); System.exit(0); } } public Connection getConnection() { return connection; } public static void main(String[]a){ Koneksi k = new Koneksi(); } }
Dwindy Stanza Pemrograman Lanjut
[email protected]
4. Buat class objek User.java dengan atribut : public class User { private String username; private String firstname; private String lastname; private String email; private String password; // // // //
gunakan IDE NetBeans / Eclipse untuk : 1.generate constructor 2.generate accessor / setter 3.generate mutator / getter
}
5. Buat class dengan nama UserDatabase.java yang berisi kode berikut :
6. Buat class TableModel.java yang merupakan turunan dari AbstractTableModel
Dengan menggunakan IDE NetBeans atau Eclipse, class ini akan dipaksakan untuk menggunakan semua Abstract method dari kelas turunan (AbstractTableModel). Untuk lebih lengkapnya, perhatikan kode berikut :
Dwindy Stanza Pemrograman Lanjut
[email protected]
public class TableModel extends AbstractTableModel{ List<User> list = new ArrayList<User>(); UserDatabase userDb = new UserDatabase(); public TableModel(){ list = userDb.getAll(); } public int getRowCount() { return list.size(); } public int getColumnCount() { return 5; //sesuaikan dengan jumlah kolom yang dibutuhkan } public String getColumnName(int column){ switch(column) { case 0 : return "USERNAME"; case 1 : return "FIRST NAME"; case 2 : return "LAST NAME"; case 3 : return "EMAIL"; case 4 : return "PASSWORD"; default : return null; } } public Object getValueAt(int rowIndex, int columnIndex) { switch(columnIndex){ case 0 : return list.get(rowIndex).getUsername(); case 1 : return list.get(rowIndex).getFirstname(); case 2 : return list.get(rowIndex).getLastname(); case 3 : return list.get(rowIndex).getEmail(); case 4 : return list.get(rowIndex).getPassword(); default : return null; } } public void setList(List<User> list) { this.list = list; } public User set(int index, User element) { try { return list.set(index, element); } finally { fireTableRowsUpdated(index, index); } } public User remove(int index) { try { return list.remove(index); } finally { fireTableRowsDeleted(index, index); } } public User get(int index) { return list.get(index); } public boolean add(User e) { try { return list.add(e); } finally { fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1); } } }
Dwindy Stanza Pemrograman Lanjut
[email protected]
7. Kembali ke MainForm.java, tambahkan kode berikut yang ditandai dengan warna hijau di bagian : public class MainFrame extends javax.swing.JFrame { TableModel model = new TableModel(); public MainFrame() { initComponents(); tblUser.setModel(model); } … …
8. Sebelum mengeksekusi program, pastikan library JDBC MySQL Connector telah ditambahkan ke dalam projek. Klik kanan pada bagian Library, dan pilih add library.
9. Jalankan service Apache dan MySQL, bisa menggunakan XAMPP
Dwindy Stanza Pemrograman Lanjut
[email protected]
10. Dengan menggunakan browser, akses ke http://localhost/phpMyAdmin 11. Buat database dengan nama bebas (disesuaikan dengan konfigurasi di class Koneksi.java). 12. Buat table dengan nama user dengan jumlah field/column sebanyak 5. Nama Kolom Tipe username Varchar (30) firstname Varchar (30) lastname Varchar (30) email Varchar (40) password Varchar (100) 13. Isilah table tersebut dengan lebih dari 1 record. 14. Eksekusi project untuk melihat hasilnya.
Mengaktifasikan fungsi Search 1. Kembali ke class MainFrame.java, klik kanan pada txtSearch, dan tambahkan events untuk Action > actionPerformed atau juga bisa Key > Key Released. 2. Tambahkan kode berikut dalam events : model = new TableModel(txtSearch.getText()); tblUser.setModel(model);
Dwindy Stanza Pemrograman Lanjut
[email protected]
3. Menuju ke class TableModel.java, tambahkan constructor berikut : public TableModel(String cari) { list = userDb.getSearch(cari); }
4. Menuju ke class UserDatabase.java, tambahkan method berikut : public List getSearch(String cari) { List list = new ArrayList<User>(); try { Statement st = con.createStatement(); String query = "select username, firstname, lastname, email, password from user where " + "username like '%"+ cari +"%' or " + "firstname like '%"+ cari +"%' or " + "lastname like '%"+ cari +"%' or " + "email like '%"+ cari +"%'"; ResultSet rsUser = st.executeQuery(query); while (rsUser.next()) { User user = new User(); user.setUsername(rsUser.getString(1)); user.setFirstname(rsUser.getString(2)); user.setLastname(rsUser.getString(3)); user.setEmail(rsUser.getString(4)); user.setPassword(rsUser.getString(5)); list.add(user); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e.getMessage()); } return list; }
5. Eksekusi project dan lihat hasilnya.
Selamat Mencoba. Pertanyaan silakan diajukan ke :
[email protected] Like juga page Kata-Kata Inspiratif
Dwindy Stanza Pemrograman Lanjut
[email protected]