1. TUTORIAL KONEKSI JAVA DENGAN DATABASE MYSQL DENGAN TOOL NETBEANS
Koneksi ke database pada Java ditangani oleh JDBC (java database connectivity).
JDBC merupakan salah satu API(Application Programming Interface) Java yang secara
khusus ditujukan untuk menangani koneksi ke database. Dengan JDBC, kita memungkinkan
untuk menghubungkan database MySQL, oracle , access dan database lain ke java.
Pada tutorial ini akan dibahas cara menghubungkan JAVA dengan MySQL. Yang
dibutuhkan :
1. Netbeans
2. J2SE(Java)
3. Apache/Lampp (yang didalamnya terdapat database MySQL)
Langkah pertama : jika kita menggunakan netbeans, buatlah project baru java standar
application, atau jika sudah ada projectnya, kita tinggal melakukan import library MySql JDBC
Driver, yaitu library yang berisi API(application programming interface) untuk koneksi java ke
MySql.
Caranya :
1. Klik kanan pada folder library pada project anda. Lihat gambar :
2. Pilih “add library”, dan kemudian akan muncul banyak pilihan library, dan cari “MySQL
JDBC Driver”. Lalu klik add Library.
Langkah kedua : buatlah sebuah kelas yang bertugas untuk membuat/ mengatur/
mengkondisikan/ mengeksekusi koneksi dari program Java anda ke MySql. Kenapa perlu
digunakan kelas baru???. Agar kita tidak perlu mengkoding ulang jika kita membutuhkan
koneksi database lebih dari 1 kali. Dengan adanya kelas koneksi, kita tinggal menginstansiasi
2. objek dari kelas koneksi tersebut,sehingga tidak terjadi pemborosan kode dan program pun
menjadi lebih optimal efisien dan lebih rapi.
Dalam contoh program, kelas yang bertugas untuk menangani koneksi database MySql diberi
nama dengan kelas koneksi.java
Source Code koneksi.java:
package formdbmysql;
import com.mysql.jdbc.ResultSetMetaData;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
*
* @author pattimura
*/
public class koneksi {
private Statement data = null;
private Connection koneksi = null;
private String Url="jdbc:Mysql://localhost/"; //host database anda
private String DbName="tes_java"; //nama database Anda
private String DBUser="root"; //username dari database, jika menggunakan default
xampp maka username = root
private String DBPassword="root";//password db , default xampp tidak ada = "";
public koneksi(){
try {
//setting driver yang digunakan untuk terhubung ke database
Class.forName("com.mysql.jdbc.Driver");
//membuat koneksi dengan parameter url +nama database, username dan
password
koneksi = DriverManager.getConnection(Url+DbName, DBUser, DBPassword);
//membuat statement yang akan digunakan untuk mengeksekusi query dari
aplikasi
data = this.koneksi.createStatement();
} catch (Throwable ex) {
System.out.println("error : "+ex);
System.exit(1);
}
}
public Connection getConnection(){
return koneksi;
}
public Statement getStatement(){
return data;
}
}
3. Langkah ketiga : Buatkan 1 file utama menggunakan jFrame dengan nama Utama.java
Source Code :
package formdbmysql;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author pattimura
*/
public class Utama extends javax.swing.JFrame {
/** Creates new form Utama */
public Utama() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jButton4 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Stambuk :");
jLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
jLabel2.setText("Nama :");
jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
jLabel3.setText("Komentar :");
jLabel3.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
jButton1.setText("Input");
jButton1.addActionListener(new java.awt.event.ActionListener() {
6. ignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addComponent(jButton3))
.addGap(18, 18, 18)
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE,
98, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jButton4)
.addGap(19, 19, 19))
);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.insert(this.jTextField1.getText(), this.jTextField2.getText(),
this.jTextArea1.getText());
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.update(this.jTextField1.getText(), this.jTextField2.getText(),
this.jTextArea1.getText());
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.delete(this.jTextField1.getText());
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.setTableFromDB();
}
private void insert(String nim, String nama, String komentar){
// buat objek koneksi yang menangani koneksi ke database
koneksi conect = new koneksi();
// tentukan query yang akan dijalankan pada mySql/database
// kita akan memasukkan data ke dalam tabel mahasiswa
String query = "insert into mahasiswa (nim,nama,komentar) values
('"+nim+"','"+nama+"','"+komentar+"')";
//eksekusi query tersebut dengan cara :
try {
conect.getStatement().executeUpdate(query); //eksekusi
JOptionPane.showMessageDialog(this, "insert berhasil");//pemberitahuan
jika berhasil
} catch (SQLException ex) {
//jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah
ini.
Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(this, "insert gagal");//pemberitahuan
jika gagal
}
}
7. private void update(String nim, String nama, String komentar){
// buat objek koneksi yang menangani koneksi ke database
koneksi conect = new koneksi();
// tentukan query update yang akan dijalankan pada mySql/database
// dalam queri ini kita akan mengganti nama dan komentar dari data yang
terkait dengan nim.
String query = "update mahasiswa set nama='"+nama+"', komentar=
'"+komentar+"' where nim='"+nim+"' ";
//eksekusi query tersebut dengan cara :
try {
conect.getStatement().executeUpdate(query); //eksekusi
JOptionPane.showMessageDialog(this, "update berhasil");//pemberitahuan
jika berhasil
} catch (SQLException ex) {
//jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah
ini.
Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(this, "update gagal");//pemberitahuan
jika gagal
}
}
private void delete(String nim){
// buat objek koneksi yang menangani koneksi ke database
koneksi conect = new koneksi();
// tentukan query update yang akan dijalankan pada mySql/database
// dalam queri ini kita akan menghapus data yang terkait dengan nim
String query = "delete from mahasiswa where nim='"+nim+"' ";
//eksekusi query tersebut dengan cara :
try {
conect.getStatement().executeUpdate(query); //eksekusi
JOptionPane.showMessageDialog(this, "data berhasil
dihapus");//pemberitahuan jika berhasil
} catch (SQLException ex) {
//jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah
ini.
Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(this, "data gagal
dihapus");//pemberitahuan jika gagal
}
}
private void setTableFromDB(){
koneksi conect = new koneksi();// objek koneksi utk koneksi ke DB
ResultSet data = null; //
int jumBaris=0; // variable untuk menentukan jumlah baris matriks
8. nantinya.
//query yang akan ditampilkan, misalkan kita ingin menampilkan data
mahasiswa dari DB ke table
String query="select * from mahasiswa";
try {
data = conect.getStatement().executeQuery(query); // query dijalankan
while(data.next()){
jumBaris++;
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Error pada jumlah baris :
"+ex.getMessage());
}
//jika jumlah baris telah didapatkan maka buat array 2 dimensi untuk
menyimpan data sementara
String isi[][]= new String[jumBaris][3]; //jumbaris, dan jumlah kolom =
3{nim, nama, komentar}
// masukkan data dari ResultStatement kedalam matriks
int i=0;//just for loop
try {
data = conect.getStatement().executeQuery(query);//eksekusi kembali
query
while (data.next()) {
System.out.println("disiko");
isi[i][0] = "" + data.getString("nim"); // ini sintaks untk
mengambil isinya, "nim" adalah nama kolom dalam DB
System.out.println("nim = "+data.getString("nim"));
isi[i][1] = "" + data.getString("nama");
isi[i][2] = "" + data.getString("komentar");
i++;
}
} catch (SQLException ex) {
Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
}
String NamaKolom[] ={"Nim","Nama","Komentar"};//nama kolom yang nantinya
akan ada pada tabel
DefaultTableModel model= new DefaultTableModel(isi,NamaKolom){};
//selanjutnya adalah mlakukan pengesetan pada tabel
jTable1.setModel(model);
//done!!!
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Utama().setVisible(true);
}
});
9. }
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable jTable1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration
}
Langkah keempat : Buat database dengan nama tes_java dan tabel mahasiswa.
Langkah kelima :
Run file Utama.java