Untuk
mempermudah bagian admin dalam mengubah pengaturan koneksi ke database dalam
suatu aplikasi. Alangkah baiknya dapat dirubah melalui form atau menu yang telah disediakan. Seorang
Administrator tidak perlu mencari pengaturan koneksi pada suatu file yang
tersimpan dalam path direktori, atau yang lebih susah lagi pengaturan koneksi
database harus di rubah dari kode program, tentunya hal itu sangat merepotkan.
Perubahan koneksi database tidak dapat dihindari, apalagi jika ada perbaikan
dan optimalisasi kinerja server database. Untuk menyimpan pengaturan koneksi
database dapat dilakukan dengan beberapa cara seperti menyimpannya dalam file
berekstensi .ini, .xml, atau disimpan didalam registry windows. Pada tutorial
ini saya akan memberikan contoh menyimpan pengaturan database kedalam file .xml,
tentunya dengan menggunakan Form untuk mempermudah penggunaan.
1. Desain sebuah
form dengan mengguanakan jForm atau jDialog untuk menyimpan pengaturan. Pada contoh
berikut saya menggunakan jDialog dengan nama “JdialogSetDB.java”.
2. Import
library yang dibutuhkan dan buat sebuah public variable Properties prop di bawah public class.
- package Konfig;
- import java.awt.Color;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.Properties;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import javax.swing.JOptionPane;
-
-
-
-
- public class JDialogSetDB extends javax.swing.JDialog {
- Properties prop;
-
-
-
-
-
- public JDialogSetDB(java.awt.Frame parent, boolean modal) {
- super(parent, modal);
- initComponents();
- }
package Konfig;
import java.awt.Color;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
*
* @author Andi Rustandi
*/
public class JDialogSetDB extends javax.swing.JDialog {
Properties prop;
/**
* Creates new form JDialogSetDB
* @param parent
* @param modal
*/
public JDialogSetDB(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}
3. Buat prosedur CreatePropertiesFile untuk menyimpan pengaturan. Pengaturan disimpan pada file SettingDB.xml lokasi berada pada folder project yang sedang dibuat.
- public void CreatePropertiesFile () {
- prop = new Properties();
- prop.setProperty("HOST", jTxtHostname.getText());
- prop.setProperty("PORT", jTxtPort.getText());
- prop.setProperty("USER", jTxtUsername.getText());
- prop.setProperty("PASS", String.copyValueOf(jPswd.getPassword(), 0, jPswd.getPassword().length));
- prop.setProperty("DB", jDbName.getText());
-
- FileOutputStream fos;
- try {
- fos = new FileOutputStream("SettingDB.xml");
- prop.storeToXML(fos, "Settingan", "UTF-8");
- JOptionPane.showMessageDialog(this, "KONFIGURASI DATABASE BERHASIL
- Untuk Menyimpan pengaturan, Aplikasi Akan ditutup
- Silahkan jalankan ulang aplikasi");
- System.exit(0);
- } catch (FileNotFoundException e) {
- JOptionPane.showMessageDialog(this, e.getMessage());
- } catch (IOException e) {
- JOptionPane.showMessageDialog(this, e.getMessage());
- }
- }
public void CreatePropertiesFile () {
prop = new Properties();
prop.setProperty("HOST", jTxtHostname.getText());
prop.setProperty("PORT", jTxtPort.getText());
prop.setProperty("USER", jTxtUsername.getText());
prop.setProperty("PASS", String.copyValueOf(jPswd.getPassword(), 0, jPswd.getPassword().length));
prop.setProperty("DB", jDbName.getText());
FileOutputStream fos;
try {
fos = new FileOutputStream("SettingDB.xml");
prop.storeToXML(fos, "Settingan", "UTF-8");
JOptionPane.showMessageDialog(this, "KONFIGURASI DATABASE BERHASIL
Untuk Menyimpan pengaturan, Aplikasi Akan ditutup
Silahkan jalankan ulang aplikasi");
System.exit(0); //exit aplikasi untuk menyimpan perubahan
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(this, e.getMessage());
} catch (IOException e) {
JOptionPane.showMessageDialog(this, e.getMessage());
}
}
4. Buat prosedure ReadPropertiesFile atau dengan nama apa saja untuk melihat pengaturan yang sudah tesimpan. Pada contoh berikut pengaturan ditampilkan pada pesan dialog.
- public void ReadPropertiesFile() {
- prop = new Properties();
- try {
- prop.loadFromXML(new FileInputStream("SettingDB.xml"));
- JOptionPane.showMessageDialog(this, "Host : " + prop.getProperty("HOST")
- + "\nPort : " + prop.getProperty("PORT")
- + "\nUser : " + prop.getProperty("USER")
- + "\nPass : " + prop.getProperty("PASS")
- + "\nDB : " + prop.getProperty("DB"));
- } catch (IOException ex) {
- JOptionPane.showMessageDialog(this, e.getMessage()); }
- }
public void ReadPropertiesFile() {
prop = new Properties();
try {
prop.loadFromXML(new FileInputStream("SettingDB.xml"));
JOptionPane.showMessageDialog(this, "Host : " + prop.getProperty("HOST")
+ "\nPort : " + prop.getProperty("PORT")
+ "\nUser : " + prop.getProperty("USER")
+ "\nPass : " + prop.getProperty("PASS")
+ "\nDB : " + prop.getProperty("DB"));
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, e.getMessage()); }
}
5. Letakan prosedure CreatePropertiesFile dan ReadPropertiesFile pada tombol Save Settings dan tombol View settings.
Tombol Save Settings
- private void jbtnSaveSettingsActionPerformed(java.awt.event.ActionEvent evt) {
- CreatePropertiesFile();
- }
private void jbtnSaveSettingsActionPerformed(java.awt.event.ActionEvent evt) {
CreatePropertiesFile();
}
Tombol View Settings
- private void jBtnViewSettingsActionPerformed(java.awt.event.ActionEvent evt) {
- ReadPropertiesFile();
- }
private void jBtnViewSettingsActionPerformed(java.awt.event.ActionEvent evt) {
ReadPropertiesFile();
}
5. Test menyimpan pengaturan.
6. Melihat pengaturan database yang berhasil disimpan.
Demikianlah cara untuk menyimpan pengaturan database mysql di Java Swing, untuk tutorial selanjutnya, cara membuat class koneksi database. Tujuannya untuk menampung sintaks koneksi dan melakukan koneksi agar hanya sekali saja menuliskan sintaks koneksi pada program. Kemudian class tersebut dipanggil di setiap form yang akan dikoneksikan dengan database.
No comments