Cách DELETE dữ liệu từ database MySQL bằng Java
Hướng dẫn cách sử dụng Prepared Statements trong Java để xóa dữ liệu từ một bảng trong database MySQL một cách an toàn và hiệu quả.
Trong bài viết này, bạn sẽ học cách kết nối đến một database MySQL và sử dụng Java với Prepared Statements để thực hiện câu lệnh DELETE, từ đó xóa các bản ghi từ bảng trong cơ sở dữ liệu theo nhiều tham số.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DeleteData {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/test_db";
String user = "root";
String password = "password";
String deleteQuery = "DELETE FROM students WHERE id = ? AND name = ?";
try (Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement pstmt = conn.prepareStatement(deleteQuery)) {
// Thiết lập tham số
pstmt.setInt(1, 1);
pstmt.setString(2, "John Doe");
// Thực hiện câu lệnh DELETE
int rowsAffected = pstmt.executeUpdate();
// In số lượng bản ghi đã xóa
System.out.println(rowsAffected + " bản ghi đã bị xóa.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Giải thích chi tiết từng dòng code:
import java.sql.*
: Import các lớp cần thiết để làm việc với JDBC.String url = "jdbc:mysql://localhost:3306/test_db";
: Định nghĩa URL kết nối đến database MySQL.String user = "root";
vàString password = "password";
: Định nghĩa thông tin đăng nhập để kết nối đến database.String deleteQuery = "DELETE FROM students WHERE id = ? AND name = ?";
: Định nghĩa câu lệnh DELETE với các tham số.try (Connection conn = DriverManager.getConnection(url, user, password); PreparedStatement pstmt = conn.prepareStatement(deleteQuery))
: Kết nối đến database và tạo đối tượng PreparedStatement.pstmt.setInt(1, 1);
vàpstmt.setString(2, "John Doe");
: Thiết lập các tham số cho câu lệnh DELETE.int rowsAffected = pstmt.executeUpdate();
: Thực hiện câu lệnh DELETE và lấy số lượng bản ghi đã xóa.System.out.println(rowsAffected + " bản ghi đã bị xóa.");
: In ra số lượng bản ghi đã bị xóa.catch (SQLException e) { e.printStackTrace(); }
: Xử lý ngoại lệ SQL nếu có lỗi xảy ra.
Yêu cầu hệ thống:
- Java 8 trở lên
- Thư viện JDBC MySQL Connector
Cách cài đặt các thư viện để chạy được đoạn mã Java trên:
Tải thư viện JDBC MySQL Connector từ trang chính thức và thêm vào dự án Java của bạn.
Lời khuyên:
- Hãy đảm bảo rằng MySQL server của bạn đang chạy trước khi thực hiện kết nối.
- Kiểm tra kỹ các thông tin kết nối như
url
,user
, vàpassword
để tránh lỗi kết nối. - Sử dụng Prepared Statements để bảo vệ khỏi các cuộc tấn công SQL injection.