Download - CRUD MVC Dengan MySql

Transcript
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: