CRUD MVC Dengan MySql

39
CRUD MVC dengan MySql Pertama buatlah sebuah database Setelah database terbuat buatlah sebuah projek dengan nama latihanMVC Tambahkan folder souce pecage Pilih tab file

description

sample crud dengan susunan MVC

Transcript of CRUD MVC Dengan MySql

Page 1: 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

Page 2: CRUD MVC Dengan MySql

Klik kanan pada LatihanMVC pilih new other

Tambahkan folder baru dengan nama spc

Page 3: CRUD MVC Dengan MySql

Kemudin pilih tab projets klik kanan dan pilih properties

Page 4: CRUD MVC Dengan MySql
Page 5: CRUD MVC Dengan MySql

Double klik pada label src dan editlah keterangannya

Buatlah pecage seperti di bawah ini:

Page 6: CRUD MVC Dengan MySql

Pada pecage asep.latihanmvc.DAOInterface

package asep.latihanmvc.DAOInterface;

import asep.latihanmvc.entity.Mahasiswa;

import java.util.List;

/**

*

* @author asep teea

*/

public interface MahasiswaDAOInter {

Page 7: CRUD MVC Dengan MySql

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

Page 8: CRUD MVC Dengan MySql

*/

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

Page 9: CRUD MVC Dengan MySql

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=?";

Page 10: CRUD MVC Dengan MySql

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"));

Page 11: CRUD MVC Dengan MySql

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";

Page 12: CRUD MVC Dengan MySql

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;

Page 13: CRUD MVC Dengan MySql

}

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;

}

Page 14: CRUD MVC Dengan MySql

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) {

Page 15: CRUD MVC Dengan MySql

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;

/**

Page 16: CRUD MVC Dengan MySql

*

* @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() {

Page 17: CRUD MVC Dengan MySql

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;

}

Page 18: CRUD MVC Dengan MySql

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

*/

Page 19: CRUD MVC Dengan MySql

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[]{

Page 20: CRUD MVC Dengan MySql

"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[]{

Page 21: CRUD MVC Dengan MySql

"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){

Page 22: CRUD MVC Dengan MySql

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;

Page 23: CRUD MVC Dengan MySql

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

}

Page 24: CRUD MVC Dengan MySql

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

Page 25: CRUD MVC Dengan MySql

}

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{

Page 26: CRUD MVC Dengan MySql

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;

Page 27: CRUD MVC Dengan MySql

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;

Page 28: CRUD MVC Dengan MySql

/**

*

* @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;

}

Page 29: CRUD MVC Dengan MySql

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

Page 30: CRUD MVC Dengan MySql

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");

Page 31: CRUD MVC Dengan MySql

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

Page 32: CRUD MVC Dengan MySql

.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)

Page 33: CRUD MVC Dengan MySql

.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)

Page 34: CRUD MVC Dengan MySql

.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);

}

Page 35: CRUD MVC Dengan MySql

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

Page 36: CRUD MVC Dengan MySql

}

}

Drag and drop…

Ke jframe

Jalankan maka hasinya adalah sbb: