com.mysql.jdbc.PreparedStatement
là một lớp nội bộ của trình điều khiển MySQL 5.x JDBC. Mã của bạn không nên nhập nó. Nó phải sử dụng java.sql.PreparedStatement
chuẩn thay vào đó là lớp học.
Tên gói đã thay đổi trong trình điều khiển JDBC của MySQL 8.x và đó là nguyên nhân khiến mã của bạn bắt đầu mắc lỗi biên dịch.
Giải pháp:
-
Sửa mã của bạn để nó không nhập bất kỳ lớp triển khai MySQL nào. Sử dụng
java.sql.*
vàjavax.sql.*
thay vào đó là lớp học. -
Thay đổi phụ thuộc dự án của bạn để trình điều khiển MySQL JAR không phải là phụ thuộc thời gian biên dịch. Làm điều đó sẽ gây ra bất kỳ tình cờ nào mã nguồn phụ thuộc vào trình điều khiển JDBC được gắn cờ là lỗi biên dịch. Nó cũng sẽ ngăn IDE của bạn đưa ra các đề xuất không chính xác cho
import
các câu lệnh. (Tôi đoán đó là cách nhập không có thật vào codebase của bạn.) -
Nếu mã của bạn đang (vẫn) sử dụng
Class.forName
để tải trình điều khiển JDBC, hãy thay đổi nó để sử dụngjava.sql.DriverManager
thay vì; xem javadoc . Bằng cách đó, bạn sẽ không bị đốt cháy bởi một thay đổi khác trong tên lớp trình điều khiển MySQL.