Java – All in One → Java JTable MySQL – INSERT SELECT UPDATE DELETE – Camposha

Java – All in One

Java – All in One

Java – All in One

Java JTable MySQL – INSERT SELECT UPDATE DELETE

This is a java jtable mysql database tutorial.

Hello good people.We tackle Java JTable and MySQL Database.We see how to perform all CRUD operations: INSERT,SELECT,UPDATE and CLEAR. Welcome.

SECTION 1 : Our Tools

  1. Netbeans IDE
  2. MySQL Database.I have used Wamp Server’s PhpMyAdmin’s interface to create database and table.The choice is yours.

SECTION 2 : Our Database Class.

Purpose:
  1. Connect to our MySQL Database
  2. Perform for us all CRUD operations,insert,select,update and delete.

SECTION 3 : Our GUI class

Purpose:
  1. Provide GUI interface to facilitate inserting,updating,retrieveing and deleting.
  2. Talk to Database class to get these operations done,in turn receiving a defaulttablemodel instance.
package jtable.db;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
public class Updater extends javax.swing.JFrame {
public Updater() {
initComponents();
}
private void retrieve()
{
DefaultTableModel dm = new DBUpdater().getData();
jTable1.setModel(dm);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
nameTxt = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
retrieveBtn = new javax.swing.JButton();
addBtn = new javax.swing.JButton();
teamTxt = new javax.swing.JTextField();
posTxt = new javax.swing.JTextField();
updateBtn = new javax.swing.JButton();
Delete = new javax.swing.JButton();
clearBtn = new javax.swing.JButton();
jLabel4 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBackground(new java.awt.Color(45, 155, 193));
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
}
));
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});
jScrollPane1.setViewportView(jTable1);
jLabel1.setText("Name");
jLabel2.setText("Position");
jLabel3.setText("Team");
retrieveBtn.setText("Retrieve");
retrieveBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
retrieveBtnActionPerformed(evt);
}
});
addBtn.setText("Add");
addBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addBtnActionPerformed(evt);
}
});
updateBtn.setText("Update");
updateBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateBtnActionPerformed(evt);
}
});
Delete.setText("Delete");
Delete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
DeleteActionPerformed(evt);
}
});
clearBtn.setText("Clear");
clearBtn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
clearBtnActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 469, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(nameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(posTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(21, 21, 21))
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(18, 18, 18)
.addComponent(teamTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0, 9, Short.MAX_VALUE))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(updateBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(Delete, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(addBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(retrieveBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(clearBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(73, 73, 73))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(50, 50, 50)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(nameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(27, 27, 27)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(posTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(52, 52, 52))
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(teamTxt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(66, 66, 66)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(addBtn)
.addComponent(retrieveBtn))
.addGap(51, 51, 51)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(updateBtn)
.addComponent(Delete)))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(38, 38, 38)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 306, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE)
.addComponent(clearBtn)
.addGap(21, 21, 21))
);
jLabel4.setText("ProgrammingWizards Channel");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(234, 234, 234)
.addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 193, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(17, 17, 17)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
//RETRIEVE BUTTON CLICKED
private void retrieveBtnActionPerformed(java.awt.event.ActionEvent evt) {
retrieve();
}
//ADD OR SAVE
private void addBtnActionPerformed(java.awt.event.ActionEvent evt) {
if (new DBUpdater().add(nameTxt.getText(), posTxt.getText(), teamTxt.getText())) {
JOptionPane.showMessageDialog(null, "Successfully Inserted");
//CLEAR TXT
nameTxt.setText("");
posTxt.setText("");
teamTxt.setText("");
retrieve();
} else {
JOptionPane.showMessageDialog(null, "Not Saved");
}
}
//SET SELECTED VALUE TO TEXTFIELDS
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
String name = jTable1.getValueAt(jTable1.getSelectedRow(), 1).toString();
String pos = jTable1.getValueAt(jTable1.getSelectedRow(), 2).toString();
String team = jTable1.getValueAt(jTable1.getSelectedRow(), 3).toString();
nameTxt.setText(name);
posTxt.setText(pos);
teamTxt.setText(team);
}
//UPDATE
private void updateBtnActionPerformed(java.awt.event.ActionEvent evt) {
int index = jTable1.getSelectedRow();
String id = jTable1.getValueAt(index, 0).toString();
if (new DBUpdater().update(id, nameTxt.getText(), posTxt.getText(), teamTxt.getText())) {
JOptionPane.showMessageDialog(null, "Successfully Updated");
//CLEAR TXT
nameTxt.setText("");
posTxt.setText("");
teamTxt.setText("");
retrieve();
} else {
JOptionPane.showMessageDialog(null, "Not Updated");
}
}
//DELETE
private void DeleteActionPerformed(java.awt.event.ActionEvent evt) {
String[] options = {"Yes", "No"};
int answ = JOptionPane.showOptionDialog(null, "Sure To Delete??", "Delete Confirm", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]);
if (answ == 0) {
int index = jTable1.getSelectedRow();
String id = jTable1.getValueAt(index, 0).toString();
if (new DBUpdater().delete(id)) {
JOptionPane.showMessageDialog(null, "Deleted Updated");
//CLEAR TXT
nameTxt.setText("");
posTxt.setText("");
teamTxt.setText("");
retrieve();
} else
{
JOptionPane.showMessageDialog(null, "Not Deleted");
}
}
}
//CLEAR BUTTON CLICKED
private void clearBtnActionPerformed(java.awt.event.ActionEvent evt) {
jTable1.setModel(new DefaultTableModel());
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton Delete;
private javax.swing.JButton addBtn;
private javax.swing.JButton clearBtn;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField nameTxt;
private javax.swing.JTextField posTxt;
private javax.swing.JButton retrieveBtn;
private javax.swing.JTextField teamTxt;
private javax.swing.JButton updateBtn;
// End of variables declaration
}

[embedyt] http://www.youtube.com/watch?v=B071LpsqARw[/embedyt]

SECTION 3 : Our Main class

Purpose:
  1. Entry point to our application.
  2. Start off GUI.
package jtable.db;
public class JTableDB {
//MAIN CLASS
public static void main(String[] args) {
//CALL UPDATER CLASS WHICH IS OUR GUI CLASS
new Updater().setVisible(true);
}
}

Best Regards.

Leave a Reply

Your email address will not be published. Required fields are marked *

Rating

Not enough ratings to display
Join Us
X