File MySQLConnection.java
package pack1;
import java.sql.*;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author LongDT
*/
public class MySQLConnection {
public Connection getConnection() throws ClassNotFoundException, SQLException{
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection("jdbc:mysql://localhost:3306/db_demo","root","");
}
}
File MySQLTransaction.java
package pack1;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @author LongDT
*/
public class MySQLTransaction {
public void showData() {
try {
Connection con = (new MySQLConnection()).getConnection();
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("select*from category");
while (rs.next()) {
System.out.println(rs.getInt(1) + " " + rs.getString(2) + " " + rs.getByte(3));
}
} catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(MySQLTransaction.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void addData(String name) {
try {
Connection con = (new MySQLConnection()).getConnection();
Statement stm = con.createStatement();
stm.executeUpdate("insert category(categoryName) values('" + name + "')");
} catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(MySQLTransaction.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void updateData(String name, int id) {
try {
Connection con = (new MySQLConnection()).getConnection();
Statement stm = con.createStatement();
stm.executeUpdate("update category set categoryName='" + name + "' where id=" + id);
} catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(MySQLTransaction.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void deleteData(int id) {
try {
Connection con = (new MySQLConnection()).getConnection();
Statement stm = con.createStatement();
stm.executeUpdate("delete from category where id=" + id);
} catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(MySQLTransaction.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
File MySQLFormTransaction.java
package pack1;
import java.sql.*;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
/**
* @author LongDT
*/
public class MySQLFormTransaction extends javax.swing.JFrame {
/**
* Creates new form FormDBTran1
*/
public MySQLFormTransaction() {
initComponents();
}
/**
* 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() {
jScrollPane1 = new javax.swing.JScrollPane();
tblShowData = new javax.swing.JTable();
btnShowData = new javax.swing.JButton();
btnAddData = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
name = new javax.swing.JTextField();
btnUpdateData = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
id = new javax.swing.JTextField();
btnDeleteData = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
tblShowData.setModel(new javax.swing.table.DefaultTableModel(
new Object[][]{
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null}
},
new String[]{
"ID", "Name", "Status"
}
) {
Class[] types = new Class[]{
java.lang.Integer.class, java.lang.String.class, java.lang.Byte.class
};
public Class getColumnClass(int columnIndex) {
return types[columnIndex];
}
});
jScrollPane1.setViewportView(tblShowData);
btnShowData.setText("Show Data");
btnShowData.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnShowDataActionPerformed(evt);
}
});
btnAddData.setText("Add Data");
btnAddData.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnAddDataActionPerformed(evt);
}
});
jLabel1.setText("Name:");
btnUpdateData.setText("Update Data");
btnUpdateData.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnUpdateDataActionPerformed(evt);
}
});
jLabel2.setText("ID:");
btnDeleteData.setText("Delete Data");
btnDeleteData.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnDeleteDataActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(55, 55, 55)
.addComponent(btnAddData)
.addGap(18, 18, 18)
.addComponent(btnUpdateData)
.addGap(18, 18, 18)
.addComponent(btnDeleteData)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnShowData)
.addGap(62, 62, 62))
.addGroup(layout.createSequentialGroup()
.addGap(226, 226, 226)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 479, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(name)
.addComponent(id))))
.addContainerGap(227, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(85, 85, 85)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(name, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(id, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 27, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnAddData)
.addComponent(btnShowData)
.addComponent(btnUpdateData)
.addComponent(btnDeleteData))
.addGap(37, 37, 37))
);
pack();
}// </editor-fold>
private String[] headers = {"ID", "Name", "Status"};
private DefaultTableModel dtm = new DefaultTableModel(headers, 0);
private void btnShowDataActionPerformed(java.awt.event.ActionEvent evt) {
Vector vector = null;
try {
Connection con = new MySQLConnection().getConnection();
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery("select*from category");
while (rs.next()) {
vector = new Vector();
vector.add(rs.getInt(1));
vector.add(rs.getString(2));
vector.add(rs.getByte(3));
dtm.addRow(vector);
}
tblShowData.setModel(dtm);
} catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(MySQLFormTransaction.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void btnAddDataActionPerformed(java.awt.event.ActionEvent evt) {
String cateName = name.getText();
new MySQLTransaction().addData(cateName);
}
private void btnUpdateDataActionPerformed(java.awt.event.ActionEvent evt) {
String cateName = name.getText();
int cateID = Integer.parseInt(id.getText());
new MySQLTransaction().updateData(cateName, cateID);
}
private void btnDeleteDataActionPerformed(java.awt.event.ActionEvent evt) {
int cateID = Integer.parseInt(id.getText());
new MySQLTransaction().deleteData(cateID);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(MySQLFormTransaction.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(MySQLFormTransaction.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(MySQLFormTransaction.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(MySQLFormTransaction.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MySQLFormTransaction().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnAddData;
private javax.swing.JButton btnDeleteData;
private javax.swing.JButton btnShowData;
private javax.swing.JButton btnUpdateData;
private javax.swing.JTextField id;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField name;
private javax.swing.JTable tblShowData;
// End of variables declaration
}
File TestMySQLTransaction.java
package pack1;
import java.util.Scanner;
/**
* @author LongDT
*/
public class TestMySQLTransaction {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//Xem dữ liệu:
new MySQLTransaction().showData();
//Thêm dữ liệu:
System.out.print("Mời nhập tên danh mục muốn thêm: ");
new MySQLTransaction().addData(input.nextLine());
new MySQLTransaction().showData();
//Sửa dữ liệu:
System.out.print("Mời nhập tên danh mục muốn sửa: ");
String name = input.nextLine();
System.out.print("Mời nhập mã danh mục muốn sửa: ");
new MySQLTransaction().updateData(name, input.nextInt());
new MySQLTransaction().showData();
//Xóa dữ liệu:
System.out.print("Mời bạn nhập mã danh mục muốn xóa: ");
new MySQLTransaction().deleteData(input.nextInt());
new MySQLTransaction().showData();
}
}