Untuk tutorial kali ini, kita akan menggunakan mode koneksi JDBC
biasa tanpa framework tambahan dan database-nya akan menggunakan MySQL.
Sebelum mulai lebih lanjut, persiapkan dahulu database yang akan
digunakan. Pada tulisan kali ini, kita akan menggunakan database yang
terdapat pada tulisan Paging On JTable.
Persiapkan dulu database-nya seperti pada tutorial tersebut, kemudian
setelah selesai sekarang buatlah 1 buah project untuk latihan dengan
nama project JComboBoxDB dan buatlah juga 2 buah package yaitu jcomboboxdb.domain dan jcomboboxdb.service seperti gambar dibawah ini : Struktur Package
Setelah selesai, tambahkan dulu library MySQL JDBC Driver dengan cara klik kanan pada node Libraries kemudian pilih Add Library > MySQL JDBC Driver dan harusnya tampilan pada struktur project kita kali ini akan tampak menjadi seperti gambar dibawah ini : Tampilan struktur project setelah penambahan library MySQL JDBC Driver
Sekarang tambahkanlah sebuah domain class pada package jcomboboxdb.domain dengan cara klik kanan package jcomboboxdb.domain kemudian pilih New Java Class dan beri nama class WPComment yang isinya kurang lebih seperti dibawah ini :
12345678910111213141516171819
publicclassWPComment{privateIntegercommentID;privateStringcommentAuthor;privateDatecommentDate;privateStringcommentContent;// gunakan alt+insert dan pilih Getter and Setter untuk membuat getter dan // setter untuk semua variable diatas/* Tambahkan ini supaya ID tampil pada JComboBox * Catatan : Gunakan alt+insert kemudian pilih <b>toString()</b> untuk * membuat method dibawah ini. */@OverridepublicStringtoString(){returncommentID.toString();}}
Setelah selesai membuat sebuah domain class, sekarang pada package jcomboboxdb.service buatlah 1 buah interface dengan nama DBService dan implementasinya dengan nama DBServiceImpl yang terlihat seperti gambar dibawah ini : Isi package service ini hanya 1 buah interface yaitu DBService dan 1 buah java class biasa yaitu DBServiceImpl
Dan isi dari interface DBService adalah kurang lebih seperti berikut :
publicclassDBServiceImplimplementsDBService{privatefinalStringFIND_ALL_QRY="select * from wp_comments";privatePreparedStatementpreparedFindAll;privateConnectionconnection;publicDBServiceImpl(Connectionconnection)throwsSQLException{this.connection=connection;preparedFindAll=connection.prepareStatement(FIND_ALL_QRY);}@OverridepublicList<wpcomment>findAllComment(){try{List<wpcomment>listWP=newArrayList<wpcomment>();ResultSetrs=preparedFindAll.executeQuery();while(rs.next()){WPCommentcomment=newWPComment();comment.setCommentID(rs.getInt("comment_ID"));comment.setCommentAuthor(rs.getString("comment_author"));comment.setCommentDate(rs.getDate("comment_date"));comment.setCommentContent(rs.getString("comment_content"));listWP.add(comment);}returnlistWP;}catch(SQLExceptionex){Logger.getLogger(DBServiceImpl.class.getName()).log(Level.SEVERE,null,ex);}returnnull;}}
Jika sudah, sekarang waktunya untuk melakukan inisialisasi database dan service. Untuk melakukan ini, sekarang editlah file Main.java yang terdapat pada package jcomboboxdb menjadi seperti ini :
12345678910111213141516171819202122
publicclassMain{privatestaticDBServicedBService;publicstaticDBServicegetdBService(){returndBService;}/** * @param args the command line arguments */publicstaticvoidmain(Stringargs[])throwsSQLException{MysqlDataSourcedataSource=newMysqlDataSource();dataSource.setUser("root");dataSource.setPassword("admin");dataSource.setDatabaseName("table_paging");dataSource.setServerName("localhost");dataSource.setPortNumber(3306);dBService=newDBServiceImpl(dataSource.getConnection());}}
Sampai disini proses inisialisasi database sudah berhasil dilakukan,
dan sekarang kita tinggal memanggil-nya dari sisi UI. Untuk melakukan
hal tersebut, sekarang buatlah sebuah Form dari JFrame dengan nama MainForm yang berisi JComboBox, JLabel, JTextField dan JButton kemudian design-lah menjadi seperti gambar dibawah ini : Design JFrame
Untuk mengambil data dari database dan memasukkan-nya ke dalam JComboBox kita harus masuk ke dalam mode Source dan buatlah sebuah private class dengan nama ComboBoxListener dahulu untuk mendeteksi proses seleksi yang terjadi pada JComboBox seperti dibawah ini :
1234567891011121314151617
......privateclassComboBoxListenerimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEvente){WPCommentwPComment=(WPComment)cmbID.getSelectedItem();txtAuthor.setText(wPComment.getCommentAuthor());}}// Variables declaration - do not modify privatejavax.swing.JButtonbtnClose;privatejavax.swing.JComboBoxcmbID;......
Setelah selesai membuat sebuah private class yang berfungsi untuk melakukan pendeteksian pada JComboBox, sekarang modifikasi-lah constructor MainForm tambahkan 1 method yaitu loadDB() seperti potongan kode dibawah ini :
123456789101112131415161718192021
publicclassMainFormextendsjavax.swing.JFrame{/** Creates new form MainForm */publicMainForm(){initComponents();loadDB();cmbID.addActionListener(newComboBoxListener());setLocationRelativeTo(null);}privatevoidloadDB(){// clear JComboBoxcmbID.removeAllItems();List<wpcomment>listWP=Main.getdBService().findAllComment();for(WPCommentwp:listWP){cmbID.addItem(wp);}}......
Dan langkah terakhir yang harus kita lakukan yaitu, editlah file Main.java agar memanggil MainForm dan sekalian kita konfigurasikan agar menggunakan SystemLookAndFeel seperti dibawah ini :
Dan sekarang, mari kita coba jalankan. Jika tidak ada masalah, harusnya kita akan melihat tampilan seperti gambar dibawah ini : Hasil akhir, disini kita bisa melihat bahwa JComboBox sudah terisi data yang berasal dari database :)
Apakah hasilnya benar ? Ok mari kita cek di database dengan menjalankan perintah select comment_ID,comment_author from wp_comments limit 10; seperti dibawah ini :
0 komentar:
Posting Komentar