CRUD MVC Dengan MySql

Post on 28-Nov-2014

160 views 5 download

description

sample crud dengan susunan MVC

Transcript of CRUD MVC Dengan MySql

CRUD MVC dengan MySql

Pertama buatlah sebuah database

Setelah database terbuat buatlah sebuah projek dengan nama latihanMVC

Tambahkan folder souce pecage

Pilih tab file

Klik kanan pada LatihanMVC pilih new other

Tambahkan folder baru dengan nama spc

Kemudin pilih tab projets klik kanan dan pilih properties

Double klik pada label src dan editlah keterangannya

Buatlah pecage seperti di bawah ini:

Pada pecage asep.latihanmvc.DAOInterface

package asep.latihanmvc.DAOInterface;

import asep.latihanmvc.entity.Mahasiswa;

import java.util.List;

/**

*

* @author asep teea

*/

public interface MahasiswaDAOInter {

public void insertMahasiswa(Mahasiswa mahasiswa)throws Exception;

public void updateMahasiswa(Mahasiswa mahasiswa,String nim)throws Exception;

public void deleteMahasiswa(String nim)throws Exception;

public Mahasiswa getMahasiswa(String nim)throws Exception;

public List<Mahasiswa> selectMahasiswa()throws Exception;

}

Pada pecage aasep.latihanmvc.DAOimp

package asep.latihanmvc.DAOimp;

import asep.latihanmvc.DAOInterface.MahasiswaDAOInter;

import asep.latihanmvc.entity.Mahasiswa;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.List;

/**

*

* @author asep teea

*/

public class MahasiswaDAO implements MahasiswaDAOInter{

private Connection con;

public MahasiswaDAO(Connection con) {

this.con = con;

}

public void insertMahasiswa(Mahasiswa mahasiswa) throws Exception {

try{

String sql="insert into mahasiswa values(?,?,?)";

PreparedStatement st=con.prepareStatement(sql);

st.setString(1, mahasiswa.getNim());

st.setString(2, mahasiswa.getNama());

st.setString(3, mahasiswa.getAlamat());

st.executeUpdate();

}catch(Throwable t){

throw new Exception(t.getMessage());

}

}

public void updateMahasiswa(Mahasiswa mahasiswa,String nim) throws Exception {

try{

String sql="update mahasiswa set Nim=?,Nama=?,Alamat=? where Nim=?";

PreparedStatement st=con.prepareStatement(sql);

st.setString(1, mahasiswa.getNim());

st.setString(2, mahasiswa.getNama());

st.setString(3, mahasiswa.getAlamat());

st.setString(4, nim);

st.executeUpdate();

}catch(Throwable t){

throw new Exception(t.getMessage());

}

}

public void deleteMahasiswa(String nim) throws Exception {

try{

String sql="delete from mahasiswa where Nim=?";

PreparedStatement st=con.prepareStatement(sql);

st.setString(1, nim);

st.executeUpdate();

}catch(Throwable t){

throw new Exception(t.getMessage());

}

}

public Mahasiswa getMahasiswa(String nim) throws Exception {

try{

Mahasiswa mahasiswa=null;

String sql="select * from mahasiswa where Nim=?";

PreparedStatement st=con.prepareStatement(sql);

st.setString(1, nim);

ResultSet rs=st.executeQuery();

if(rs.next()){

mahasiswa=new Mahasiswa();

mahasiswa.setNim(rs.getString("Nim"));

mahasiswa.setNama(rs.getString("Nama"));

mahasiswa.setAlamat(rs.getString("Alamat"));

}

return mahasiswa;

}catch(Throwable t){

throw new Exception(t.getMessage());

}

}

public List<Mahasiswa> selectMahasiswa() throws Exception {

try{

String sql="select * from mahasiswa";

List<Mahasiswa> list=new ArrayList<Mahasiswa>();

PreparedStatement st=con.prepareStatement(sql);

ResultSet rs=st.executeQuery();

while(rs.next()){

Mahasiswa m=new Mahasiswa();

m.setNim(rs.getString("Nim"));

m.setNama(rs.getString("nama"));

m.setAlamat(rs.getString("Alamat"));

list.add(m);

}

return list;

}catch(Throwable t){

throw new Exception(t.getMessage());

}

}

}

Pada pecage asep.latihanmvc.DB

package asep.latihanmvc.DB;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import javax.swing.JOptionPane;

/**

*

* @author asep teea

*/

public class DBConnection {

private String url="jdbc:mysql://localhost:3306/usni";

private String dbnme="usni";

private String host="localhost:3306";

private String username="root";

private String password="root";

private Connection connection=null;

private static DBConnection mycon=null;

public DBConnection() {

try {

Class.forName("com.mysql.jdbc.Driver").newInstance();

} catch (Throwable ex) {

JOptionPane.showMessageDialog(null, new Object[]{

"terjadi error pada driver dengan ror",

ex.getMessage()

});

}

}

public static DBConnection getInstance(){

DBConnection conn=null;

try{

if(mycon==null){

mycon=new DBConnection();

conn=mycon;

}else if(mycon.getConnection().isClosed()){

mycon=conn;

}else{

conn=mycon;

}

return conn;

}catch(SQLException e){

return new DBConnection();

}

}

public void closeConnection() throws SQLException{

this.connection.close();

}

public Connection getConnection() throws SQLException {

if(this.connection==null){

this.connection=DriverManager.getConnection(getUrl(), getUsername(), getPassword());

}

return connection;

}

public void setConnection(Connection connection) {

this.connection = connection;

}

//<editor-fold defaultstate="collapted" desc="get set">

public String getDbnme() {

return dbnme;

}

public void setDbnme(String dbnme) {

this.dbnme = dbnme;

}

public String getHost() {

return host;

}

public void setHost(String host) {

this.host = host;

}

public static DBConnection getMycon() {

return mycon;

}

public static void setMycon(DBConnection mycon) {

DBConnection.mycon = mycon;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

//</editor-fold>

}

Pada pecage asep.latihanmvc.entity

package asep.latihanmvc.entity;

/**

*

* @author asep teea

*/

public class Mahasiswa {

private String nim;

private String nama;

private String alamat;

public String getAlamat() {

return alamat;

}

public void setAlamat(String alamat) {

this.alamat = alamat;

}

public String getNama() {

return nama;

}

public void setNama(String nama) {

this.nama = nama;

}

public String getNim() {

return nim;

}

public void setNim(String nim) {

this.nim = nim;

}

@Override

public boolean equals(Object obj) {

if (obj == null) {

return false;

}

if (getClass() != obj.getClass()) {

return false;

}

final Mahasiswa other = (Mahasiswa) obj;

if ((this.nim == null) ? (other.nim != null) : !this.nim.equals(other.nim)) {

return false;

}

if ((this.nama == null) ? (other.nama != null) : !this.nama.equals(other.nama)) {

return false;

}

if ((this.alamat == null) ? (other.alamat != null) : !this.alamat.equals(other.alamat)) {

return false;

}

return true;

}

@Override

public int hashCode() {

int hash = 5;

hash = 11 * hash + (this.nim != null ? this.nim.hashCode() : 0);

hash = 11 * hash + (this.nama != null ? this.nama.hashCode() : 0);

hash = 11 * hash + (this.alamat != null ? this.alamat.hashCode() : 0);

return hash;

}

}

Pada pecage asep.mahasiswa.controler

package asep.mahasiswa.controler;

import asep.mahasiswa.model.MahasiswaModel;

import asep.mahasiswa.view.MahasiswaView;

import javax.swing.JOptionPane;

/**

*

* @author asep teea

*/

public class MahasiswaControler {

private MahasiswaModel model;

public void setModel(MahasiswaModel model) {

this.model = model;

}

public void insertmahasiswa(MahasiswaView view){

String nim=view.getTxtNim().getText();

String nama=view.getTxtNama().getText();

String alamat=view.getTxtAlamat().getText();

if(nim.trim().equals("")){

JOptionPane.showMessageDialog(view, "nim tidak boleh kosong");

}else if(nama.trim().equals("")){

JOptionPane.showMessageDialog(view, "nama tidak boleh kosong");

}else if(alamat.trim().equals("")){

JOptionPane.showMessageDialog(view, "alamat tidak boleh kosong");

}else{

try {

model.setNim(nim);

model.setNama(nama);

model.setAlamat(alamat);

model.insertMahasiswa();

JOptionPane.showMessageDialog(view, "mahasiswa berhasil di insert");

} catch (Exception ex) {

JOptionPane.showMessageDialog(view, new Object[]{

"terjadi error di database",

ex.getMessage()

});

}

}

}

public void updateMahasiswa(MahasiswaView view){

String nim=view.getTxtNim().getText();

String nama=view.getTxtNama().getText();

String alamat=view.getTxtAlamat().getText();

if(nim.trim().equals("")){

JOptionPane.showMessageDialog(view, "nim masih kosong");

}else if(nama.trim().equals("")){

JOptionPane.showMessageDialog(view, "nama masih kosong");

}else if(alamat.trim().equals("")){

JOptionPane.showMessageDialog(view, "alamat masih kosong");

}else{

try {

model.setNim(nim);

model.setNama(nama);

model.setAlamat(alamat);

model.updatetMahasiswa();

JOptionPane.showMessageDialog(view, "mahasiswa berhasil di update");

} catch (Exception ex) {

JOptionPane.showMessageDialog(view, new Object[]{

"terjadi error di database",

ex.getMessage()

});

}

}

}

public void deleteMahasiswa(MahasiswaView view){

String nim=view.getTxtNim().getText();

if(nim.trim().equals("")){

JOptionPane.showMessageDialog(view, "nim masih kosong");

}else{

try {

model.setNim(nim);

model.deletetMahasiswa();

JOptionPane.showMessageDialog(view, "mahasiswa berhasil di delete");

model.resetMahasiswa();

} catch (Exception ex) {

JOptionPane.showMessageDialog(view, new Object[]{

"terjadi error di database",

ex.getMessage()

});

}

}

}

public void loadMahasiswa(MahasiswaView view){

String nim=view.getTxtNim().getText();

if(nim.trim().equals("")){

JOptionPane.showMessageDialog(view, "nim masih kosong");

}else{

try {

model.setNim(nim);

model.loadtMahasiswa();

} catch (Exception ex) {

JOptionPane.showMessageDialog(view, new Object[]{

"terjadi error di database",

ex.getMessage()

});

}

}

}

public void resaeatMahasiswa(MahasiswaView view){

model.resetMahasiswa();

}

}

Pada pecage asep.mahasiswa.model

package asep.mahasiswa.model;

import asep.latihanmvc.DAOimp.MahasiswaDAO;

import asep.latihanmvc.DB.DBConnection;

import asep.latihanmvc.entity.Mahasiswa;

import asep.mahasiswa.model.event.MahasiswaListner;

/**

*

* @author asep teea

*/

public class MahasiswaModel {

private String nim;

private String nama;

private String alamat;

private MahasiswaListner listner;

public MahasiswaListner getListner() {

return listner;

}

public void setListner(MahasiswaListner listner) {

this.listner = listner;

fireOnChange();

}

public String getAlamat() {

return alamat;

}

public void setAlamat(String alamat) {

this.alamat = alamat;

fireOnChange();

}

public String getNama() {

return nama;

}

public void setNama(String nama) {

this.nama = nama;

fireOnChange();

}

public String getNim() {

return nim;

}

public void setNim(String nim) {

this.nim = nim;

fireOnChange();

}

protected void fireOnChange(){

if(listner!=null){

listner.onChange(this);

}

}

public void insertMahasiswa() throws Exception{

Mahasiswa mahasiswa = new Mahasiswa();

mahasiswa.setNim(nim);

mahasiswa.setNama(nama);

mahasiswa.setAlamat(alamat);

MahasiswaDAO dAO = new MahasiswaDAO(DBConnection.getInstance().getConnection());

dAO.insertMahasiswa(mahasiswa);

}

public void updatetMahasiswa() throws Exception{

Mahasiswa mahasiswa = new Mahasiswa();

mahasiswa.setNim(nim);

mahasiswa.setNama(nama);

mahasiswa.setAlamat(alamat);

MahasiswaDAO dAO = new MahasiswaDAO(DBConnection.getInstance().getConnection());

dAO.updateMahasiswa(mahasiswa, nim);

}

public void deletetMahasiswa() throws Exception{

MahasiswaDAO dao = new MahasiswaDAO(DBConnection.getInstance().getConnection());

Mahasiswa mahasiswa = dao.getMahasiswa(nim);

dao.deleteMahasiswa(nim);

}

public void loadtMahasiswa() throws Exception{

MahasiswaDAO dao = new MahasiswaDAO(DBConnection.getInstance().getConnection());

Mahasiswa mahasiswa = dao.getMahasiswa(nim);

setNim(mahasiswa.getNim());

setNama(mahasiswa.getNama());

setAlamat(mahasiswa.getAlamat());

}

public void resetMahasiswa(){

setNim("");

setNama("");

setAlamat("");

}

}

Pada pecage asep.mahasisawa.model.event

package asep.mahasiswa.model.event;

import asep.mahasiswa.model.MahasiswaModel;

/**

*

* @author asep teea

*/

public interface MahasiswaListner {

public void onChange(MahasiswaModel model);

}

Buatlah desain tampilan sbb:

Kodenya sbb:

package asep.mahasiswa.view;

import asep.mahasiswa.controler.MahasiswaControler;

import asep.mahasiswa.model.MahasiswaModel;

import asep.mahasiswa.model.event.MahasiswaListner;

import javax.swing.JTextField;

/**

*

* @author asep teea

*/

public class MahasiswaView extends javax.swing.JPanel implements MahasiswaListner{

private MahasiswaModel model;

private MahasiswaControler controler;

/** Creates new form MahasiswaView */

public MahasiswaView() {

initComponents();

model=new MahasiswaModel();

model.setListner(this);

controler=new MahasiswaControler();

controler.setModel(model);

}

public JTextField getTxtAlamat() {

return txtAlamat;

}

public JTextField getTxtNama() {

return txtNama;

}

public JTextField getTxtNim() {

return txtNim;

}

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

txtNim = new javax.swing.JTextField();

txtNama = new javax.swing.JTextField();

txtAlamat = new javax.swing.JTextField();

btnDelete = new javax.swing.JButton();

btnLoad = new javax.swing.JButton();

btnsave = new javax.swing.JButton();

btnUpdate = new javax.swing.JButton();

btnReset = new javax.swing.JButton();

jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel1.setText("Nim");

jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel2.setText("Nama");

jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

jLabel3.setText("Alamat");

btnDelete.setText("Delete");

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

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

btnDeleteActionPerformed(evt);

}

});

btnLoad.setText("Load");

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

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

btnLoadActionPerformed(evt);

}

});

btnsave.setText("Save");

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

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

btnsaveActionPerformed(evt);

}

});

btnUpdate.setText("Update");

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

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

btnUpdateActionPerformed(evt);

}

});

btnReset.setText("Reset");

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

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

btnResetActionPerformed(evt);

}

});

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

this.setLayout(layout);

layout.setHorizontalGroup(

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

.addGroup(layout.createSequentialGroup()

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

.addGroup(layout.createSequentialGroup()

.addContainerGap()

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

.addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

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

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

.addComponent(txtAlamat)

.addComponent(txtNama)

.addGroup(layout.createSequentialGroup()

.addComponent(txtNim, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)

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

.addComponent(btnDelete)

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

.addComponent(btnLoad))))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

.addContainerGap()

.addComponent(btnsave)

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

.addComponent(btnUpdate)

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

.addComponent(btnReset)))

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

);

layout.setVerticalGroup(

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

.addGroup(layout.createSequentialGroup()

.addContainerGap()

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

.addComponent(jLabel1)

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

.addComponent(btnDelete)

.addComponent(btnLoad))

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

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

.addComponent(jLabel2)

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

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

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

.addComponent(jLabel3)

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

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

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

.addComponent(btnReset)

.addComponent(btnUpdate)

.addComponent(btnsave))

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

);

}// </editor-fold>

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

// TODO add your handling code here:

controler.insertmahasiswa(this);

}

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

// TODO add your handling code here:

controler.deleteMahasiswa(this);

}

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

// TODO add your handling code here:

controler.loadMahasiswa(this);

}

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

// TODO add your handling code here:

controler.updateMahasiswa(this);

}

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

// TODO add your handling code here:

controler.resaeatMahasiswa(this);

}

// Variables declaration - do not modify

private javax.swing.JButton btnDelete;

private javax.swing.JButton btnLoad;

private javax.swing.JButton btnReset;

private javax.swing.JButton btnUpdate;

private javax.swing.JButton btnsave;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JTextField txtAlamat;

private javax.swing.JTextField txtNama;

private javax.swing.JTextField txtNim;

// End of variables declaration

public void onChange(MahasiswaModel model) {

txtNim.setText(model.getNim());

txtNama.setText(model.getNama());

txtAlamat.setText(model.getAlamat());

}

}

Drag and drop…

Ke jframe

Jalankan maka hasinya adalah sbb: