Cách UPDATE dữ liệu trong database MySQL bằng Java
Hướng dẫn cách sử dụng Prepared Statements trong Java để cập nhật dữ liệu trong một bảng của 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 UPDATE, từ đó cập nhật các bản ghi trong 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 UpdateDataExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/test_db";
String user = "root";
String password = "password";
String updateQuery = "UPDATE students SET name = ? WHERE id = ?";
try (Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement pstmt = conn.prepareStatement(updateQuery)) {
// Thiết lập giá trị cho các tham số
pstmt.setString(1, "Jane Doe");
pstmt.setInt(2, 1);
// Thực hiện câu lệnh UPDATE
int rowsAffected = pstmt.executeUpdate();
System.out.println(rowsAffected + " bản ghi đã được cập nhật.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Giải thích chi tiết từng dòng code:
import java.sql.Connection;
,import java.sql.DriverManager;
,import java.sql.PreparedStatement;
,import java.sql.SQLException;
: Nhập các thư viện cần thiết cho việc kết nối và thực hiện truy vấn SQL.String url = "jdbc:mysql://localhost:3306/test_db";
: Định nghĩa URL kết nối tới database MySQL.String user = "root";
vàString password = "password";
: Định nghĩa thông tin đăng nhập.String updateQuery = "UPDATE students SET name = ? WHERE id = ?";
: Định nghĩa câu lệnh UPDATE với các tham số chi tiết.try (Connection conn = DriverManager.getConnection(url, user, password); ...)
: Thiết lập kết nối đến database và tự động đóng kết nối khi hoàn thành.PreparedStatement pstmt = conn.prepareStatement(updateQuery)
: Tạo một Prepared Statement từ câu lệnh UPDATE đã định nghĩa.pstmt.setString(1, "Jane Doe");
vàpstmt.setInt(2, 1);
: Thiết lập các giá trị tham số cho câu lệnh UPDATE.int rowsAffected = pstmt.executeUpdate();
: Thực hiện câu lệnh UPDATE và lưu số lượng bản ghi đã cập nhật.System.out.println(rowsAffected + " bản ghi đã được cập nhật.");
: In ra số lượng bản ghi đã được cập nhật.catch (SQLException e)
: Bắt lỗi SQL và in thông báo lỗi nếu có.
Yêu cầu hệ thống:
- JDK 8 hoặc cao hơn
- Thư viện MySQL Connector/J
Cách cài đặt các thư viện để chạy được đoạn mã Java trên:
- Tải thư viện MySQL Connector/J từ trang web chính thức.
- Thêm thư viện vào classpath của 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, 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.