Cara Koneksi Database MySQL Menggunakan JDBC di Java

 

1.      Buka xampp Control dan start kan


2.      Lalu buka Crome dan masuk ke  http://localhost/phpmyadmin/

3.      Seelanjutnya kita akan membuat table Perpustakaan dengan cara

Klik New – Create databases (Perpustakaan) – Lansung saja tekan tombol Create

4.      Selanjutnya untuk membuat tabelnya masukkan nama yang diinginkan seperti contoh Anggota dan kolom table nya ada 4 dan langsung tekan Go saja


5.      Jika sudah masukkan seperti berikut (Pertama itu Primary lalu selanjutnya Index)


Jika sudah langsung scroll ke bawah dan tekan Go / Save

Jika Selesai maka tampilannya seperti berikut

Selanjutnya untuk memasukkan data nya seperti berikut

Klik tools Insert – masukkan seperti berikut – lalu Go / Save


Jika berhasil  seperti berikut tool Browse

6.      Jika ingin membuat table baru maka lakukan hal yang sama sepereti tadi

Seperti contoh table kedua adalah Buku

 

Selanjutnya Buat Projek di Netbeans seperti berikut

 

A.   Koneksi Databases

Langkah pertama yang harus dilakukan agar  bias menggunakan JDBC adalah menambahkan pustaka Mysql JDBC Driver pada projek yang dibuat. Contohnya seperti berikut.  Klik kanan pada Projek – Properties



Selanjutnya Libraries – Add Library – Mysql JDBC Drive – Add Library – OK

Seperti berikut

 

Selanjutnya klik 2x pada tombol Hubungkan ke Databases

Lalu masukkan source code berikut

Sebelum membuat event tombol, Lakukanlah panggilan terhadap beberapa kelas dari pustaka JDBC dengan menggunakan perintah berikut

import java.sql.Connection;

import java.sql.DriverManager;

// TODO add your handling code here:

        try{

        String driver = "com.mysql.jdbc.Driver";

        //String driver untuk koneksi ke databse perpustakaan

        String db = "jdbc:mysql://localhost/perpustakaan";

        //String untuk koneksi ke database perpustakaan

        String user = "root";

        //user database

        String password = "root";

        //password database

        Class.forName(driver);

        Connection con = DriverManager.getConnection(db, user, password);

        if (con!=null){

            javax.swing.JOptionPane.showMessageDialog(rootPane, "Koneksi Berhasil !");

            con.close();

        }

    }catch(Exception ex){

        javax.swing.JOptionPane.showMessageDialog(rootPane, "Koneksi Gagal !");

        }

    } 

Jika Berhasil maka saat di Run akan seperti ini


Jika ingin Koneksi berhasil maka tinggal kosongkan passwordnya

7.      Selanjutnya membuat Projek baru seperti berikut

B.   Menampilkan Data Buku

       (Jangan lupa di table nya ganti nama variable nya dengan nama tabelBuku)

Untuk menambahkan table ataupun merubah namanya dengan cara Klik kanan – properties - model - Insert - Ok

Selanjutnya klik 2x pada tombol TAMPILKAN DATA BUKU lalu masukkan source code berikut

package MenampilkanDataBuku;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.Statement;

import java.sql.ResultSet;

try{

            String driver = "com.mysql.jdbc.Driver";

            //string driver untuk koneksi ke MySql

            String db = "jdbc:mysql://localhost/perpustakaan";

            //string untuk koneksi ke database perpustakaan

            String user = "root";

            //user database

            String password = "";

            //password database

            Class.forName(driver);

            Connection con = DriverManager.getConnection(db, user, password);

            //membuat koneksi dengan database

            Statement stmt=con.createStatement();

            String queri="SELECT*FROM buku";

            ResultSet rs=stmt.executeQuery(queri);

            int index=0;

       

            while(rs.next())

            {

                tabelBuku.getModel().setValueAt(rs.getString("id_buku"), index, 0);

                tabelBuku.getModel().setValueAt(rs.getString("judul"), index, 1);

                tabelBuku.getModel().setValueAt(rs.getString("pengarang"), index, 2);

                tabelBuku.getModel().setValueAt(rs.getString("penerbit"), index, 3);

                tabelBuku.getModel().setValueAt(rs.getString("jumlah"), index, 4);

                index++;

            }

            rs.close();

            stmt.close();

            con.close();

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, "Koneksi Gagal !");

        }

    }

Jika berhasil maka saat di Run tamilannya sebagai berikut :

C.   Entri Data Buku


Catatan :

·         Pakai text Field dengan variable change “teksbuku, teksjudul, dan seterusnya”

·         Untuk dibawah pake table seperti sebelumnya dengan variable change “tabelbuku”

Selanjutnya masukkan source code berikut

package EntriDataBukuPia;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.Statement;

import java.sql.ResultSet;

import javax.swing.table.DefaultTableModel;

 

public class formEntriDataBuku extends javax.swing.JFrame {

 

    String driver = "com.mysql.jdbc.Driver";

    String db = "jdbc:mysql://localhost/perpustakaan";

    String user = "root";

    String password = "";

    DefaultTableModel model=new DefaultTableModel();

                                         

    public formEntriDataBuku() {

        initComponents();

    }

 

    void entriData(String id, String judul, String pengarang, String penerbit, int jumlah)

    {

     try

     {

       Class.forName(driver);

       Connection con = DriverManager.getConnection(db, user, password);

       Statement stmt=con.createStatement();

       String queri="INSERT INTO buku(ID_Buku,Judul,Pengarang,Penerbit,Jumlah) VALUES"

               +"('"+id+"','"+judul+"','"+pengarang+"','"+penerbit+"',"+jumlah+")";

       stmt.executeUpdate(queri);

       con.close();

        }catch(Exception ex)

         {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

       }

    }

   

    int getJumlahData(ResultSet x)

    {

        int n=0;

        try

        {

            x.last();

            n=x.getRow();

            x.close();

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

        return n;

        }

   

    void tampilData()

    {

        try

        {

            Class.forName(driver);

            Connection con = DriverManager.getConnection(db, user, password);

            //membuat koneksi dengan database

            Statement stmt=con.createStatement();

            String queri="SELECT*FROM buku";

            ResultSet rs=stmt.executeQuery(queri);

           

            int jumbaris=getJumlahData(rs);

            String[]titleKolom={"ID_BUKU","JUDUL","PENGARANG","PENERBIT","JUMLAH"};

            String[][]databuku=new String[jumbaris][5];

            int index=0;

           

            rs=stmt.executeQuery(queri);

            while(rs.next())

            {

                databuku[index][0]=rs.getString("ID_Buku");

                databuku[index][1]=rs.getString("Judul");

                databuku[index][2]=rs.getString("Pengarang");

                databuku[index][3]=rs.getString("Penerbit");

                databuku[index][4]=rs.getString("Jumlah");

                index++;

            }

            model.setDataVector(databuku, titleKolom);

            tabelBuku.setModel(model);

            rs.close();

            con.close();

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

       }

    }

 

Untuk tombol Entri berikut source code nya

// TODO add your handling code here:

        try{

            String id=teksbuku.getText();

            String judul=teksjudul.getText();

            String pengarang=tekspengarang.getText();

            String penerbit=tekspenerbit.getText();

            int jumlah=Integer.parseInt(teksJumlah.getText());

           

            entriData(id,judul,pengarang,penerbit,jumlah);

            //entri data menggunakan method entriData

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

    }   

 

Untuk tombol Tampil berikut source code nya

// TODO add your handling code here:

        try{

            tampilData();

            //menampilkan data menggunakan method tampilData

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

    }   

Jika berhasil Berikut tampilannya saat di run

Saat meekan Tombol Tampil dan Tombol Entri

D.   Form Ubah Data


Masukkan source code nya sebagai berikut :

package PencarianDataPia;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.Statement;

import java.sql.ResultSet;

import javax.swing.table.DefaultTableModel;

 

public class formPencarian extends javax.swing.JFrame {

 

    String driver = "com.mysql.jdbc.Driver";

    String db = "jdbc:mysql://localhost/perpustakaan";

    String user = "root";

    String password = "";

    DefaultTableModel model=new DefaultTableModel();

   

    public formPencarian() {

        initComponents();

        tampilData();

        //pemanggilam method tampilData untuk menampilkan data pada saat pertama kali dijalankan

    }

   

    int getJumlahData(ResultSet x)

    {

        int n=0;

        try

        {

            x.last();

            n=x.getRow();

            x.close();

        }catch(Exception ex)

        {

        }

        return n;

    }

   

    void tampilData()

    {

     try

    {

    Class.forName(driver);

    Connection con = DriverManager.getConnection(db, user, password);

    //membuat koneksi dengan database

    Statement stmt=con.createStatement();

    String queri="SELECT*FROM anggota";

    ResultSet rs=stmt.executeQuery(queri);

   

    int jumbaris=getJumlahData(rs);

    String[]titleKolom={"ID Anggota","Nama","Alamat","Tlp"};

    String[][]dataanggota=new String[jumbaris][4];

    int index=0;

   

    rs=stmt.executeQuery(queri);

    while(rs.next())

    {

        dataanggota[index][0]=rs.getString("ID_Anggota");

        dataanggota[index][1]=rs.getString("Nama");

        dataanggota[index][2]=rs.getString("Alamat");

        dataanggota[index][3]=rs.getString("No_Telp");

        index++;

    }

    model.setDataVector(dataanggota, titleKolom);

    tabelAnggota.setModel(model);

    rs.close();

    con.close();

}catch(Exception ex)

{

    javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

}

}

   

    void tampilData(String nama)

    {

        try

        {

            Class.forName(driver);

            Connection con = DriverManager.getConnection(db, user, password);

            //membuat koneksi dengan database

            Statement stmt=con.createStatement();

            String queri="SELECT * FROM anggota WHERE nama like '%"+nama+"%'";

            ResultSet rs=stmt.executeQuery(queri);

           

            int jumbaris=getJumlahData(rs);

            String[]titleKolom={"ID Anggota","Nama","Alamat","Tlp"};

            String[][]dataanggota=new String[jumbaris][4];

            int index=0;

           

            rs=stmt.executeQuery(queri);

            while(rs.next())

            {

                dataanggota[index][0]=rs.getString("ID_Anggota");

                dataanggota[index][1]=rs.getString("Nama");

                dataanggota[index][2]=rs.getString("Alamat");

                dataanggota[index][3]=rs.getString("No_Telp");

                index++;

            }

            model.setDataVector(dataanggota, titleKolom);

            tabelAnggota.setModel(model);

            rs.close();

            con.close();

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

    }

Untuk Tombol Cari

// TODO add your handling code here:

        try{

            String nama=teksNama.getText();

            tampilData(nama);

            //memanggil method tampilData dengan parameter nama

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

    }    

Berikut jika di run


E.   Ubah Data


Berikut Source code nya

package MengubahDataAnggotaPia;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.Statement;

import java.sql.ResultSet;

import javax.swing.table.DefaultTableModel;

 

public class formUbahdata extends javax.swing.JFrame {

    String driver = "com.mysql.jdbc.Driver";

    String db = "jdbc:mysql://localhost/perpustakaan";

    String user = "root";

    String password = "";

    DefaultTableModel model=new DefaultTableModel();

   

    public formUbahdata() {

        initComponents();

        tampilData();

    }

    int getJumlahData(ResultSet x)

    {

        int n=0;

        try

        {

            x.last();

            n=x.getRow();

            x.close();

        }catch(Exception ex)

        {

        }

        return n;

    }

   

    void tampilData()

    {

        try

        {

            Class.forName(driver);

            Connection con = DriverManager.getConnection(db, user, password);

            //membuat koneksi dengan database

            Statement stmt=con.createStatement();

            String queri="SELECT*FROM anggota";

            ResultSet rs=stmt.executeQuery(queri);

           

            int jumbaris=getJumlahData(rs);

            String[]titleKolom={"ID Anggota","Nama","Alamat","Telp"};

            String[][]dataanggota=new String[jumbaris][4];

            int index=0;

           

            rs=stmt.executeQuery(queri);

            while(rs.next())

            {

            dataanggota[index][0]=rs.getString("id_anggota");

            dataanggota[index][1]=rs.getString("nama");

            dataanggota[index][2]=rs.getString("alamat");

            dataanggota[index][3]=rs.getString("no_telp");

            index++;

            }

           

            model.setDataVector(dataanggota, titleKolom);

            tabelAnggota.setModel(model);

            rs.close();

            con.close();

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

    }

   

    void CariData(String idanggota)

    {

        try

        {

            Class.forName(driver);

            Connection con = DriverManager.getConnection(db, user, password);

            //membuat koneksi dengan database

            Statement stmt=con.createStatement();

            String queri="SELECT*FROM anggota WHERE id_anggota='"+idanggota+"'";

            ResultSet rs=stmt.executeQuery(queri);

           

            while(rs.next())

            {

                teksAnggota.setText(rs.getString("id_anggota"));

                teksnama.setText(rs.getString("nama"));

                teksalamat.setText(rs.getString("alamat"));

                tekstelp.setText(rs.getString("no_telp"));

            }

            rs.close();

            con.close();

        }catch(Exception ex)

        {javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

    }

   

    void ubahData(String id, String nama, String alamat, String telp)

    {

        try

        {

            Class.forName(driver);

            Connection con = DriverManager.getConnection(db, user, password);

            Statement stmt=con.createStatement();

            String queri="UPDATE anggota set nama='"+nama+"',alamat='"+alamat+"',"

                    +"no_telp='"+telp+"'WHERE id_anggota='"+id+"'";

            stmt.executeUpdate(queri);

            con.close();

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

    }

    /**

     * 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();

        jLabel4 = new javax.swing.JLabel();

        jLabel5 = new javax.swing.JLabel();

        TombolUbah = new javax.swing.JButton();

        TombolCari = new javax.swing.JButton();

        jScrollPane1 = new javax.swing.JScrollPane();

        tabelAnggota = new javax.swing.JTable();

        teksAnggota = new javax.swing.JTextField();

        teksnama = new javax.swing.JTextField();

        teksalamat = new javax.swing.JTextField();

        tekstelp = new javax.swing.JTextField();

 

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

 

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N

        jLabel1.setText("FORM UBAH DATA ANGGOTA");

 

        jLabel2.setText("ID Anggota");

 

        jLabel3.setText("Nama");

 

        jLabel4.setText("Alamat");

 

        jLabel5.setText("No Telp");

 

        TombolUbah.setText("UBAH");

        TombolUbah.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                TombolUbahActionPerformed(evt);

            }

        });

 

        TombolCari.setText("CARI");

        TombolCari.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                TombolCariActionPerformed(evt);

            }

        });

 

        tabelAnggota.setModel(new javax.swing.table.DefaultTableModel(

            new Object [][] {

                {null, null, null, null},

                {null, null, null, null},

                {null, null, null, null},

                {null, null, null, null}

            },

            new String [] {

                "ID_BUKU", "NAMA", "ALAMAT", "NO_TELP"

            }

        ));

        jScrollPane1.setViewportView(tabelAnggota);

 

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

        getContentPane().setLayout(layout);

        layout.setHorizontalGroup(

            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addGroup(layout.createSequentialGroup()

                .addContainerGap()

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                    .addComponent(jLabel3)

                    .addComponent(jLabel4)

                    .addComponent(jLabel5)

                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)

                    .addGroup(layout.createSequentialGroup()

                        .addComponent(jLabel2)

                        .addGap(46, 46, 46)

                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addGroup(layout.createSequentialGroup()

                                .addComponent(TombolUbah)

                                .addGap(18, 18, 18)

                                .addComponent(TombolCari))

                            .addComponent(jLabel1)

                            .addGroup(layout.createSequentialGroup()

                                .addGap(10, 10, 10)

                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

                                    .addComponent(tekstelp, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE)

                                    .addComponent(teksalamat)

                                    .addComponent(teksnama)

                                    .addComponent(teksAnggota))))))

                .addContainerGap(15, Short.MAX_VALUE))

        );

        layout.setVerticalGroup(

            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addGroup(layout.createSequentialGroup()

                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

                .addComponent(jLabel1)

                .addGap(18, 18, 18)

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(jLabel2)

                    .addComponent(teksAnggota, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(jLabel3)

                    .addComponent(teksnama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(jLabel4)

                    .addComponent(teksalamat, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(jLabel5)

                    .addComponent(tekstelp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                .addGap(18, 18, 18)

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(TombolUbah)

                    .addComponent(TombolCari))

                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE))

        );

 

        pack();

    }// </editor-fold>                       

 

    private void TombolCariActionPerformed(java.awt.event.ActionEvent evt) {                                          

        // TODO add your handling code here:

        try{

            if(!teksAnggota.getText().isEmpty())

            {

                String id=teksAnggota.getText();

                CariData(id);

            }

            else{

                javax.swing.JOptionPane.showMessageDialog(rootPane, "Sihlakan masukkan id anggota yang ingin dicari !");

        }

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

    }  

 

Untuk Tombol Cari

 

// TODO add your handling code here:

        try{

            if(!teksAnggota.getText().isEmpty())

            {

                String id=teksAnggota.getText();

                CariData(id);

            }

            else{

                javax.swing.JOptionPane.showMessageDialog(rootPane, "Sihlakan masukkan id anggota yang ingin dicari !");

        }

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

    }        

Untuk Tombol Ubah

// TODO add your handling code here:

        try{

            String id=teksAnggota.getText();

            String nama=teksnama.getText();

            String alamat=teksalamat.getText();

            String telp=tekstelp.getText();

           

            ubahData(id,nama,alamat,telp);

            //memanggil method ubah data untuk melakukan perubahan data anggota

            tampilData();

        }catch(Exception ex)

        {

            javax.swing.JOptionPane.showMessageDialog(rootPane, ex.getMessage());

        }

    }    

Berikut jika di Run






Komentar