input data ke dalam database

advertisement
INPUT DATA KE DALAM DATABASE
Untuk input / insert data dalam database kita perlu menambahkan library java untuk
mempersiapkan perintah SQL kita (selain library untuk koneksi database).
import java.sql.PreparedStatement;
Berikut potongan source code untuk input / insert data ke dalam database :
try {
PreparedStatement ps = koneksi.prepareStatement("INSERT INTO anggota(NoAnggota, Nama, Alamat)
VALUES(?, ?, ?)");
ps.setString(1, txtNoAnggota.getText());
ps.setString(2, txtNama.getText());
ps.setString(3, txtAlamat.getText());
if (ps.executeUpdate() > 0) {
System.out.println("Data berhasil disimpan.");
} else {
System.out.println("Data gagal disimpan.");
}
} catch (SQLException e) {
System.out.println("Eksekusi Query Gagal: " + e.toString());
} catch (Exception e) {
System.out.println("Error: " + e.toString());
}
Latihan Input Data
1. Buat project baru, beri nama “MySQLInsertData”, hilangkan tanda centang pada
“Create Main Class”.
2. Tambahkan new “Java Package” pada “Source Packages” dan beri nama
“MySQLInsertData”.
3. Tambahkan “JFrame Form” pada package “MySQLInsertData”, dan beri nama “FMain”.
4. Buatlah form dengan antar muka sebagai berikut :
Variable Name : txtNoAnggota
Variable Name : txtNama
Variable Name : txtAlamat
Variable Name : btnClear
Variable Name : btnSave
JTable
Variable Name : gridAnggota
\
Variable Name : btnClose
5. Tambahkan library-library dibawah ini :
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
6. Buat variable global seperti dibawah ini :
private final String[] JudulKolom = {"No Anggota", "Nama Anggota", "Alamat"};
private Connection koneksi = null;
7. Tambahkan potongan source code berikut di main method aplikasi (dibawah
“initComponents();”) :
// create connection
try {
Class.forName("com.mysql.jdbc.Driver");
koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/javaperpus?user=root&password=bboyz");
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(this, e.toString(), "Class Driver Tidak Ditemukan",
JOptionPane.ERROR_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(this, e.toString(), "Error", JOptionPane.ERROR_MESSAGE);
}
// view data
viewData();
8. Buat method viewData()
private void viewData() {
Object[][] data = null;
try {
Statement st = koneksi.createStatement();
ResultSet rs = st.executeQuery("select * from Anggota");
rs.last();
int rowcount=rs.getRow();
rs.beforeFirst();
data = new Object[rowcount][3];
int no = 0;
while (rs.next()) {
data[no][0] = rs.getString("NoAnggota");
data[no][1] = rs.getString("Nama");
data[no][2] = rs.getString("Alamat");
no = no + 1;
}
DefaultTableModel tabModel = new DefaultTableModel(data, JudulKolom) {
boolean[] canEdit = new boolean [] { false, false, false };
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
};
gridAnggota.setModel(tabModel);
st.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, e.toString(), "Eksekusi Query Gagal",
JOptionPane.ERROR_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(this, e.toString(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
9. Pada event “ActionPerformed” di object “btnClear”, tambahkan source code berikut :
txtNoAnggota.setText("");
txtNama.setText("");
txtAlamat.setText("");
txtNoAnggota.requestFocus();
10. Pada event “ActionPerformed” di object “btnSave”, tambahkan source code berikut :
try {
PreparedStatement ps = koneksi.prepareStatement("INSERT INTO anggota(NoAnggota, Nama, Alamat)
VALUES(?, ?, ?)");
ps.setString(1, txtNoAnggota.getText());
ps.setString(2, txtNama.getText());
ps.setString(3, txtAlamat.getText());
if (ps.executeUpdate() > 0) {
JOptionPane.showMessageDialog(this, "Data berhasil disimpan.", "Simpan Data",
JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(this, "Data gagal disimpan.", "Simpan Data",
JOptionPane.WARNING_MESSAGE);
}
ps.close();
viewData();
btnClearActionPerformed(evt);
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, e.toString(), "Eksekusi Query Gagal",
JOptionPane.ERROR_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(this, e.toString(), "Error", JOptionPane.ERROR_MESSAGE);
}
11. Pada event “ActionPerformed” di object “btnClose”, tambahkan source code berikut :
this.dispose();
12. Pada event “WindowClosed” di object “FMain”, tambahkan source code berikut :
try {
koneksi.close();
System.exit(0);
} catch (Exception e) {
// silent
}
13. Buka properties project anda.
14. Masuk ke kategori “Libraries”. Klik tombol “Add Library” lalu cari “MySQL JDBC Driver”
klik tombol “Add Library”.
15. Masuk ke kategori “Run”, lalu browse “Main Class”, pilih “MySQLInsertData.FMain” klik
tombol “Select Main Class”.
16. Tutup window “Project Properties” dengan meng-klik tombol “OK”. Lalu “Run” project.
======================= End Of Materi =======================
Source code lengkap dapat dilihat di file
“attachments/MySQLInsertData.java”.
Tugas Praktikum
Buatlah sebuah database MySQL dengan nama “java3_nim” dan sebuah tabel dengan nama
“buku”, berikut field-field yang terdapat dalam tabel tersebut :
kode_buku
judul_buku
tahun_buku
author_buku
kategori_buku
=> varchar(20)
=> varchar(100)
=> year(4)
=> varchar(50)
=> varchar(50)
Lalu buat aplikasi untuk menampilkan data dan menambah data seperti contoh yang telah dipelajari
diatas.
Tugas berupa dumping database & source project di compres ke dalam “.zip” atau “.rar” dan dikirim ke
[email protected] dengan subject “Tugas[spasi]Java[spasi]3[spasi]MIXX[spasi]NIM[spasi]Nama” selambat-lambatnya hari kamis, 20 oktober 2011 23:59.
Download