Halaman

Kamis, 05 Agustus 2010

membuat crud-jdbc dengan java

CRUD merupakan akronim dari Create , Read , Update ,Delete. Di tutorial ini kita akan membuat aplikasi CRUD dengan java yang simple.
Nah langsung saja di persiapkan senjatanya :
1. Netbeans 6.9
2. PHPMyadmin
dah cuma itu saja..
step2 nya yaitu :
1. Buat database dengan nama pejabat.
2. Buat tabel data_pejabat trus isinya no dan nama
no pake int aja jadiin primary key, trus nama pake varchar
3. Buka editor netbeans. Kalo lom punya install dulu.
4. Buat project baru , nama terserah yang jelas pilih java aplication.lalu setting koneksi database nya. klik kanan service -->database-->klik kanan create connection.

5. Buat kelas entitas dengan nama pejabat. 

package entity;

/**
 *
 * @author suryono
 */
public class Pejabat {
    //variabel yang ada untuk entitas sama dengan yang di database
    private int no;
    private String jeneng;
    //getter untuk nama
    public String getJeneng() {
        return jeneng;
    }
    //setter untuk nama
    public void setJeneng(String jeneng) {
        this.jeneng = jeneng;
    }

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }


}
6. Buat tabel model nya
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package model;

import entity.Pejabat;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author suryono
 */
//berguna untuk menampung data dari database terus ditampilkan ke tabel
public class TabelModelPejabat extends AbstractTableModel {
  
    Listlist;

    public TabelModelPejabat(List list) {
        this.list = list;
    }
  
    public Pejabat get(int row){
        return list.get(row);
    }
    //mendapatkan jumlah baris
    public int getRowCount() {
        return list.size();
    }
    //mendapatkan jumlah kolom
    public int getColumnCount() {
        return 2;
    }
    //mendapatkan no dan nama
    public Object getValueAt(int rowIndex, int columnIndex) {

        switch (columnIndex) {
            case 0: return list.get(rowIndex).getNo();
            case 1: return list.get(rowIndex).getJeneng();
            default: return null;

        }
    }
    //untuk memberi nama kolom di tabel
    @Override
    public String getColumnName(int column) {
        switch (column) {
            case 0: return "No Penjahat";
            case 1: return "Nama Penjahat";
              default : return null;

        }

    }

}


7. Buat Daonya letakkan di package model caranya : klik kanan project --> java class
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import entity.Pejabat;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author suryono
 */
//class untuk koneksi ke database
public class DaoPejabat {
    //url ke database

    private String url = "jdbc:mysql://localhost:3306/pejabat";
    //username database
    private String username = "root";
    //password database
    private String password = "root";
    //variabel untuk membuat koneksi
    private Connection con;
    //untuk mendapatkan array dari pejabat
    private List list;

    public DaoPejabat() {
        try {
            try {
                //mengenalkan driver
                Class.forName("com.mysql.jdbc.Driver").newInstance();
            } catch (InstantiationException ex) {
                JOptionPane.showMessageDialog(null, "kesalahan " + ex);
            } catch (IllegalAccessException ex) {
                JOptionPane.showMessageDialog(null, "kesalahan : " + ex);
            }
        } catch (ClassNotFoundException ex) {
            JOptionPane.showMessageDialog(null, "kesalahan : " + ex);
        }
    }

    public DaoPejabat(Connection con) {
        this.con = con;
    }
    //method untuk koneksi database

    public void connect() throws SQLException {
        this.con = DriverManager.getConnection(url, username, password);
    }
    //method untuk menutup koneksi ke database

    public void disconnect() throws SQLException {
        this.con.close();
    }
    //method mendapatkan data dari database pejabat dalam bentuk array

    public List read() {
        try {
            //membuat statement
            Statement st = con.createStatement();
            String sql = "SELECT * FROM data_pejabat";
            //mendapatkan data dari tabel dalam bentuk result set
            ResultSet rs = st.executeQuery(sql);
            list = new ArrayList();
            while (rs.next()) {
                Pejabat pj = new Pejabat();
                pj.setNo(rs.getInt("no"));
                pj.setJeneng(rs.getString("nama"));
                list.add(pj);
            }


        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "kesalahan pada dao : " + ex);
        }
        return list;

    }
//method untuk insert ke database

    public void insert(Pejabat pj) {
        try {
            String sql = "INSERT INTO data_pejabat VALUES(?,?)";
            PreparedStatement ps = this.con.prepareStatement(sql);
            ps.setInt(1, pj.getNo());
            ps.setString(2, pj.getJeneng());
            ps.executeUpdate();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "kesalahan pada dao : " + ex);
        }
    }
//method untuk update ke database

    public void update(int no, Pejabat pj) {
        try {
            String sql = "UPDATE data_pejabat set no=?, nama=? WHERE no=?";
            PreparedStatement ps = this.con.prepareStatement(sql);
            ps.setInt(1, pj.getNo());
            ps.setString(2, pj.getJeneng());
            ps.setInt(3, no);
            ps.executeUpdate();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "kesalahan pada dao : " + ex);
        }

    }
//method untuk delete database

    public void delete(int no) {
        try {
            String sql = "DELETE from data_pejabat WHERE no=?";
            PreparedStatement ps = this.con.prepareStatement(sql);
            ps.setInt(1, no);
            ps.executeUpdate();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "kesalahan pada dao : " + ex);
        }


    }
//method untuk pencarian

    public List read(int no) {
        try {
            Statement st = con.createStatement();
            String sql = "SELECT * FROM data_pejabat WHERE no like?";
            list = new ArrayList();
            PreparedStatement ps = this.con.prepareStatement(sql);
            ps.setString(1, "%" + no + "%");
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                Pejabat pj = new Pejabat();
                pj.setNo(rs.getInt("no"));
                pj.setJeneng(rs.getString("nama"));
                list.add(pj);

            }

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "kesalahan pada dao : " + ex);
        }
        return list;
    }
}


 8. Buat tampilannya


9. Tinggal koding dalemannya
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * PejabatView.java
 *
 * Created on Aug 5, 2010, 6:15:32 AM
 */
package view;

import entity.Pejabat;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.TableModel;
import model.DaoPejabat;
import model.TabelModelPejabat;

/**
 *
 * @author suryono
 */
public class PejabatView extends javax.swing.JFrame {
    //membuat object dari DaoPejabat untuk koneksi ke database
    DaoPejabat dao = new DaoPejabat();
    Pejabat pj;
//   TabelModelPejabat tmp ;
//
//    public TabelModelPejabat getTmp() {
//        return tmp;
//    }



    /** Creates new form PejabatView */
    public PejabatView() {
        try {

            initComponents();
            dao.connect();
            List list = new ArrayList();
            list = dao.read();
            TableModel tableModel = new TabelModelPejabat(list);
            tabelPejabat.setModel(tableModel);

        } catch (SQLException ex) {
            Logger.getLogger(PejabatView.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

 

    private void btnInsertActionPerformed(java.awt.event.ActionEvent evt) {/
        try {
            pj = new Pejabat();
            //mendapatkan no dan nama dari view
            pj.setNo(Integer.parseInt(txtNo.getText()));
            pj.setJeneng(txtNama.getText());
            dao.connect();
            dao.insert(pj);
            List list = new ArrayList();
            //membaca datanya ke list
            list = dao.read();
            //menampilkan data ke tabel
            TableModel tableModel = new TabelModelPejabat(list);
            tabelPejabat.setModel(tableModel);
            dao.disconnect();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(this, "no tidak boleh sama ");
        }

    }

    private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {
        try {
            int noBaris = tabelPejabat.getSelectedRow();
            //jika baris tidak di klik
            if (noBaris < 0) {
                return;
            }

            if (JOptionPane.showConfirmDialog(this, "Yakin menghapus data", "Peringatan", JOptionPane.OK_CANCEL_OPTION) == JOptionPane.CANCEL_OPTION) {
                return ;
            }
            //mendapatkan nilai no dari tabel yang di klik
            Object index = tabelPejabat.getValueAt(noBaris, 0);
            dao.connect();
            dao.delete(Integer.parseInt(String.valueOf(index)));
            List list = new ArrayList();
            list = dao.read();
            //menampilkan data ke tabel
            TableModel tableModel = new TabelModelPejabat(list);
            tabelPejabat.setModel(tableModel);
            dao.disconnect();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(this, "Kesalahan : " + ex);
        }
    }

    private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {
        try {
            int baris = tabelPejabat.getSelectedRow();
            Object indek = tabelPejabat.getValueAt(baris, 0);
            int nilaiIndek = Integer.parseInt(String.valueOf(indek));
            dao.connect();
            pj = new Pejabat();
            pj.setNo(Integer.parseInt(txtNo.getText()));
            pj.setJeneng(txtNama.getText());
            pj.setNo(nilaiIndek);
          
            dao.update(Integer.parseInt(txtNo.getText()), pj);
            List list = new ArrayList();
            list = dao.read();
            TableModel tableModel = new TabelModelPejabat(list);
            tabelPejabat.setModel(tableModel);
            dao.disconnect();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(this, "Kesalahan : " + ex);
        }
    }

    private void btnCariActionPerformed(java.awt.event.ActionEvent evt) {
        try {
            //mendapatkan nilai dari yang dicari
            int cari = Integer.parseInt(txtCari.getText());
            List list = new ArrayList();
            list = new ArrayList();
            dao.connect();
            list = dao.read(cari);
            //menampilkan yang dicari
            TableModel tableModel = new TabelModelPejabat(list);
            tabelPejabat.setModel(tableModel);
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(this, "Kesalahan : " + ex);
        }
    }
    //mengisikan data dari tabel ke textno dan textnama
    private void tabelPejabatMouseClicked(java.awt.event.MouseEvent evt) {
        int selected = tabelPejabat.getSelectedRow();
        if (selected < 0) {
            JOptionPane.showMessageDialog(this, "Klik row tabel");
        } else {
            Object noBaris = tabelPejabat.getValueAt(selected, 0);
            txtNo.setText(noBaris.toString());
            txtNama.setText((String) tabelPejabat.getValueAt(selected, 1));
        }
      
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new PejabatView().setVisible(true);

            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnCari;
    private javax.swing.JButton btnDelete;
    private javax.swing.JButton btnInsert;
    private javax.swing.JButton btnUpdate;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTable tabelPejabat;
    private javax.swing.JTextField txtCari;
    private javax.swing.JTextField txtNama;
    private javax.swing.JTextField txtNo;
    // End of variables declaration//GEN-END:variables
}


10. Tinggal masukkan mysql jdbc drivernya trus di jalankan..


maap kalo masih berantakan .. ini pertama kali post pake code java ..
download source code nya disini.
mungkin masih ada kekurangan nya sih tapi kalo mau serius belajar pasti bisa kq..he he

Tidak ada komentar: