Java: Demo Java Select, Insert, Update, Delete với MySQL

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

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();
  }
}
» Tiếp: BÀI TẬP PHẦN JDBC
« Trước: Kết nối Cơ sở dữ liệu Java với MySQL
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!